From 076f5977a33a26ed057fda1723963e489b9f8225 Mon Sep 17 00:00:00 2001 From: Doyle Thai Date: Tue, 28 Mar 2017 18:40:38 +1100 Subject: [PATCH] Init dchip-8 repo with bare bones win32 app --- .gitignore | 7 ++ dchip-8.vcxproj | 12 +++- dchip-8.vcxproj.filters | 5 ++ src/.clang-format | 46 +++++++++++++ src/Common.h | 128 +++++++++++++++++++++++++++++++++++ src/build.bat | 54 +++++++++++++++ src/ctime.exe | Bin 0 -> 152576 bytes src/dchip-8.cpp | 146 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 397 insertions(+), 1 deletion(-) create mode 100644 src/.clang-format create mode 100644 src/Common.h create mode 100644 src/build.bat create mode 100644 src/ctime.exe create mode 100644 src/dchip-8.cpp diff --git a/.gitignore b/.gitignore index 1c9a181..bd3cdaf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,10 @@ +################################################################################ +# MANUAL ENTRIES +################################################################################ +tags +*.swp +*.swo + ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. diff --git a/dchip-8.vcxproj b/dchip-8.vcxproj index 2ed25ab..63e7779 100644 --- a/dchip-8.vcxproj +++ b/dchip-8.vcxproj @@ -68,13 +68,22 @@ - + + $(SolutionDir)\bin\ + $(SolutionDir)\bin\ + Level3 Disabled true + true + false + MultiThreaded + + Windows + @@ -110,6 +119,7 @@ + diff --git a/dchip-8.vcxproj.filters b/dchip-8.vcxproj.filters index 6a1782f..9120b0a 100644 --- a/dchip-8.vcxproj.filters +++ b/dchip-8.vcxproj.filters @@ -14,4 +14,9 @@ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + Source Files + + \ No newline at end of file diff --git a/src/.clang-format b/src/.clang-format new file mode 100644 index 0000000..82ec7e2 --- /dev/null +++ b/src/.clang-format @@ -0,0 +1,46 @@ +{ + ColumnLimit: 80, + TabWidth: 4, + IndentWidth: 4, # 1 tab + UseTab: ForIndentation, + BreakBeforeBraces: Allman, + PointerBindsToType: false, + ### + AlwaysBreakAfterDefinitionReturnType: false, + AlwaysBreakTemplateDeclarations: true, + AlwaysBreakBeforeMultilineStrings: true, + IndentFunctionDeclarationAfterType: false, + # + AccessModifierOffset: -4, # 1 tab + AlignAfterOpenBracket: true, + AlignConsecutiveAssignments: true, + AlignTrailingComments: true, + # + AllowAllParametersOfDeclarationOnNextLine: true, + AllowShortBlocksOnASingleLine: false, + AllowShortIfStatementsOnASingleLine: true, + AllowShortLoopsOnASingleLine: false, + # + BinPackArguments: true, + BinPackParameters: true, + # + BreakConstructorInitializersBeforeComma: true, + ConstructorInitializerIndentWidth: 0, + # + IndentCaseLabels: true, + # + MaxEmptyLinesToKeep: 1, + NamespaceIndentation: None, + # + SpaceBeforeAssignmentOperators: true, + SpaceInEmptyParentheses: false, + SpacesBeforeTrailingComments: 1, + SpacesInAngles: false, + SpacesInCStyleCastParentheses: false, + SpacesInParentheses: false, + SpacesInSquareBrackets: false, + # + Cpp11BracedListStyle: true, + Standard: Cpp11, + # +} diff --git a/src/Common.h b/src/Common.h new file mode 100644 index 0000000..5011a99 --- /dev/null +++ b/src/Common.h @@ -0,0 +1,128 @@ +#ifndef COMMON_H +#define COMMON_H + +#include "stdint.h" + +#define LOCAL_PERSIST static +#define GLOBAL_VAR static +#define FILE_SCOPE static + +typedef uint32_t u32; +typedef uint16_t u16; + +typedef int64_t i64; +typedef int32_t i32; +typedef int16_t i16; + +typedef float f32; +typedef unsigned char u8; + +#define INVALID_CODE_PATH 0 + +#define ARRAY_COUNT(array) (sizeof(array) / sizeof(array[0])) + +#ifdef DEBUG_MODE + #define ASSERT(expr) if (!(expr)) { (*((int *)0)) = 0; } +#else + #define ASSERT(expr) +#endif + +#define MATH_ABS(x) (((x) < 0) ? (-(x)) : (x)) + +typedef union v2 { + struct { f32 x, y; }; + struct { f32 w, h; }; +} v2; + +inline FILE_SCOPE v2 V2(f32 x, f32 y) +{ + v2 result = {}; + result.x = x; + result.y = y; + + return result; +} + +inline FILE_SCOPE v2 V2i(i32 x, i32 y) +{ + v2 result = V2((f32)x, (f32)y); + return result; +} + +inline FILE_SCOPE i32 common_strcmp(const char *a, const char *b) +{ + while ((*a) == (*b)) + { + if (!(*a)) return 0; + a++; + b++; + } + + return (((*a) < (*b)) ? -1 : 1); +} + +inline FILE_SCOPE i32 common_wstrcmp(const wchar_t *a, const wchar_t *b) +{ + while ((*a) == (*b)) + { + if (!(*a)) return 0; + a++; + b++; + } + + return (((*a) < (*b)) ? -1 : 1); +} + +inline FILE_SCOPE void common_wstrcat(const wchar_t *a, i32 lenA, + const wchar_t *b, i32 lenB, wchar_t *out, + i32 outLen) +{ + ASSERT((lenA + lenB) < outLen); + + i32 outIndex = 0; + for (i32 i = 0; i < lenA; i++) + out[outIndex++] = a[i]; + + for (i32 i = 0; i < lenB; i++) + out[outIndex++] = b[i]; + + ASSERT(outIndex <= outLen); +} + +inline FILE_SCOPE wchar_t common_wcharAsciiToLowercase(wchar_t character) +{ + if (character >= L'A' && character <= L'Z') + { + i32 shiftOffset = L'a' - L'A'; + character += (wchar_t)shiftOffset; + } + + return character; +} + +inline FILE_SCOPE i32 common_wstrlen(const wchar_t *a) +{ + i32 result = 0; + while ((*a)) + { + result++; + a++; + } + + return result; +} + +inline FILE_SCOPE i32 common_strlen(const char *a) +{ + i32 result = 0; + while ((*a)) + { + result++; + a++; + } + + return result; +} + + +#endif diff --git a/src/build.bat b/src/build.bat new file mode 100644 index 0000000..41ceab6 --- /dev/null +++ b/src/build.bat @@ -0,0 +1,54 @@ +@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or +@REM vcvarsall.bat to setup command-line compiler. + +@echo OFF +set ProjectName=dchip-8 + +ctime -begin %ProjectName%.ctm + +REM Build tags file +ctags -R + +REM Check if build tool is on path +REM >nul, 2>nul will remove the output text from the where command +where cl.exe >nul 2>nul +if %errorlevel%==1 call msvc86.bat + +REM Drop compilation files into build folder +IF NOT EXIST ..\bin mkdir ..\bin +pushd ..\bin + +REM EHa- disable exception handling (we don't use) +REM GR- disable c runtime type information (we don't use) + +REM MD use dynamic runtime library +REM MT use static runtime library, so build and link it into exe + +REM Oi enable intrinsics optimisation, let us use CPU intrinsics if there is one +REM instead of generating a call to external library (i.e. CRT). + +REM Zi enables debug data, Z7 combines the debug files into one. + +REM W4 warning level 4 +REM WX treat warnings as errors +REM wd4100 ignore: unused argument parameters +REM wd4201 ignore: nonstandard extension used: nameless struct/union +REM wd4189 ignore: local variable is initialised but not referenced + +set CompileFlags=-EHa- -GR- -Oi -MT -Z7 -W4 -WX -wd4100 -wd4201 -wd4189 + +REM Include directories +set IncludeFlags= + +REM Link libraries +set LinkLibraries=user32.lib gdi32.lib + +REM incrmenetal:no, turn incremental builds off +REM opt:ref, try to remove functions from libs that are referenced at all +set LinkFlags=-incremental:no -opt:ref + +cl %CompileFlags% ..\src\%ProjectName%.cpp %IncludeFlags% /link -subsystem:WINDOWS,5.1 %LinkLibraries% %LinkFlags% /nologo /OUT:"%ProjectName%.exe" + +popd +ctime -end %ProjectName%.ctm + diff --git a/src/ctime.exe b/src/ctime.exe new file mode 100644 index 0000000000000000000000000000000000000000..b5fa4db2b12ef5167871122035f6515289219bce GIT binary patch literal 152576 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

RGsmusS<67iyyYau+)2rp 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 +#include + +FILE_SCOPE bool globalRunning = false; + +FILE_SCOPE LRESULT CALLBACK mainWindowProcCallback(HWND window, UINT msg, + WPARAM wParam, LPARAM lParam) +{ + LRESULT result = 0; + switch (msg) + { + case WM_CLOSE: + case WM_DESTROY: + { + globalRunning = false; + } + break; + + default: + { + result = DefWindowProc(window, msg, wParam, lParam); + } + break; + } + + return result; +} + +GLOBAL_VAR LARGE_INTEGER globalQueryPerformanceFrequency; +inline FILE_SCOPE f32 getTimeFromQueryPerfCounter(LARGE_INTEGER start, + LARGE_INTEGER end) +{ + f32 result = (f32)(end.QuadPart - start.QuadPart) / + globalQueryPerformanceFrequency.QuadPart; + return result; +} + +inline FILE_SCOPE LARGE_INTEGER getWallClock() +{ + LARGE_INTEGER result; + QueryPerformanceCounter(&result); + + return result; +} + +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, + LPSTR lpCmdLine, int nShowCmd) +{ + WNDCLASSEX wc = + { + sizeof(WNDCLASSEX), + CS_HREDRAW | CS_VREDRAW, + mainWindowProcCallback, + 0, // int cbClsExtra + 0, // int cbWndExtra + hInstance, + LoadIcon(NULL, IDI_APPLICATION), + LoadCursor(NULL, IDC_ARROW), + GetSysColorBrush(COLOR_3DFACE), + L"", // LPCTSTR lpszMenuName + L"dchip-8Class", + NULL, // HICON hIconSm + }; + + if (!RegisterClassEx(&wc)) { + // TODO(doyle): Logging, couldn't register class + ASSERT(INVALID_CODE_PATH); + return -1; + } + + // NOTE: Regarding Window Sizes + // If you specify a window size, e.g. 800x600, Windows regards the 800x600 + // region to be inclusive of the toolbars and side borders. So in actuality, + // when you blit to the screen blackness, the area that is being blitted to + // is slightly smaller than 800x600. Windows provides a function to help + // calculate the size you'd need by accounting for the window style. + RECT r = {}; + r.right = 450; + r.bottom = 200; + + DWORD windowStyle = WS_OVERLAPPEDWINDOW | WS_VISIBLE; + AdjustWindowRect(&r, windowStyle, FALSE); + + globalRunning = true; + HWND mainWindow = CreateWindowEx( + WS_EX_COMPOSITED, wc.lpszClassName, L"dchip-8", windowStyle, + CW_USEDEFAULT, CW_USEDEFAULT, r.right - r.left, r.bottom - r.top, + nullptr, nullptr, hInstance, nullptr); + + if (!mainWindow) + { + // TODO(doyle): Logging, couldn't create root window + ASSERT(INVALID_CODE_PATH); + return -1; + } + + QueryPerformanceFrequency(&globalQueryPerformanceFrequency); + LARGE_INTEGER startFrameTime; + const f32 targetFramesPerSecond = 16.0f; + f32 targetSecondsPerFrame = 1 / targetFramesPerSecond; + f32 frameTimeInS = 0.0f; + + MSG msg; + while (globalRunning) + { + startFrameTime = getWallClock(); + while (PeekMessage(&msg, mainWindow, 0, 0, PM_REMOVE)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + LARGE_INTEGER endWorkTime = getWallClock(); + f32 workTimeInS = + getTimeFromQueryPerfCounter(startFrameTime, endWorkTime); + + if (workTimeInS < targetSecondsPerFrame) + { + DWORD remainingTimeInMs = + (DWORD)((targetSecondsPerFrame - workTimeInS) * 1000); + Sleep(remainingTimeInMs); + } + + LARGE_INTEGER endFrameTime = getWallClock(); + frameTimeInS = + getTimeFromQueryPerfCounter(startFrameTime, endFrameTime); + f32 msPerFrame = 1000.0f * frameTimeInS; + + wchar_t windowTitleBuffer[128] = {}; + _snwprintf_s(windowTitleBuffer, ARRAY_COUNT(windowTitleBuffer), + ARRAY_COUNT(windowTitleBuffer), L"dchip-8 | %5.2f ms/f", + msPerFrame); + SetWindowText(mainWindow, windowTitleBuffer); + } + + return 0; +}