now runs on windows
This commit is contained in:
parent
2a5f728abf
commit
5813c70ef9
@ -3,9 +3,12 @@ setlocal enabledelayedexpansion
|
|||||||
|
|
||||||
set vulkan_include=C:\VulkanSDK\1.4.304.1\Include
|
set vulkan_include=C:\VulkanSDK\1.4.304.1\Include
|
||||||
set linker_flags=-incremental:no -opt:ref User32.lib kernel32.lib
|
set linker_flags=-incremental:no -opt:ref User32.lib kernel32.lib
|
||||||
|
set vma_src=..\external\vma\vma.cpp
|
||||||
|
set game_src=..\src\entry_windows.c
|
||||||
|
set vma_obj=.\vma.obj
|
||||||
|
|
||||||
mkdir build
|
mkdir build
|
||||||
pushd build
|
pushd build
|
||||||
cl /c /I ..\external\vma /I %vulkan_include% ..\external\vma\vma.cpp
|
cl /DEBUG /c /I ..\external\vma /I %vulkan_include% /EHsc ..\external\vma\vma.cpp
|
||||||
cl /DEBUG /I ..\external /I %vulkan_include% -DBUILD_DEBUG -DSTG_VULKAN_RENDERER ..\src\main.c /link %linker_flags%
|
cl /DEBUG /I ..\external /I %vulkan_include% -DBUILD_DEBUG -DSTG_VULKAN_RENDERER ..\src\entry_windows.c %vma_obj% /link %linker_flags%
|
||||||
popd
|
popd
|
||||||
|
|||||||
45
src/entry_windows.c
Normal file
45
src/entry_windows.c
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#ifdef _WIN32
|
||||||
|
|
||||||
|
#include "entry_windows.h"
|
||||||
|
|
||||||
|
#include "platform.c"
|
||||||
|
#include "util.c"
|
||||||
|
#include "arena.c"
|
||||||
|
#include "render.c"
|
||||||
|
#include "game.c"
|
||||||
|
|
||||||
|
int CALLBACK WinMain(HINSTANCE instance, HINSTANCE prev_instance, LPSTR cmd_line, int show_code)
|
||||||
|
{
|
||||||
|
win32_instance = instance;
|
||||||
|
|
||||||
|
#ifdef BUILD_DEBUG
|
||||||
|
{
|
||||||
|
AllocConsole();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
u8 *mem = (u8 *)MemAllocZeroed(MB(32));
|
||||||
|
Arena *arena = CreateArenaDebug(mem, MB(32), 1);
|
||||||
|
|
||||||
|
isize renderer_mem_size = MB(8);
|
||||||
|
|
||||||
|
rawptr renderer_mem = ArenaAlloc(arena, renderer_mem_size);
|
||||||
|
Arena *renderer_arena = CreateArenaDebug(renderer_mem, MB(8), 2);
|
||||||
|
|
||||||
|
Assert(CreatePlatformWindow(), "Failed to initialize window");
|
||||||
|
|
||||||
|
GameInput *inputs = ArenaAlloc(arena, sizeof(GameInput) * 10);
|
||||||
|
u32 i_count = 0;
|
||||||
|
|
||||||
|
InitializeGame(renderer_arena);
|
||||||
|
|
||||||
|
while (!global_quit)
|
||||||
|
{
|
||||||
|
GetWindowEvents();
|
||||||
|
RunCycle(inputs, i_count);
|
||||||
|
}
|
||||||
|
|
||||||
|
DestroyGame();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // _WIN32
|
||||||
20
src/entry_windows.h
Normal file
20
src/entry_windows.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#ifdef _WIN32
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define STB_SPRINTF_IMPLEMENTATION
|
||||||
|
|
||||||
|
#define WINDOW_NAME "Video Game"
|
||||||
|
|
||||||
|
#include "stb/stb_sprintf.h"
|
||||||
|
|
||||||
|
#include "shared_types.h"
|
||||||
|
#include "platform.h"
|
||||||
|
#include "util.h"
|
||||||
|
#include "arena.h"
|
||||||
|
#include "render.h"
|
||||||
|
#include "game.h"
|
||||||
|
|
||||||
|
int CALLBACK WinMain(HINSTANCE instance, HINSTANCE prev_instance, LPSTR cmd_line, int show_code);
|
||||||
|
|
||||||
|
#endif // _WIN32
|
||||||
@ -69,9 +69,8 @@ i32 _EPrintf(const char *fmt, va_list arg)
|
|||||||
int sprf_res = stbsp_vsnprintf(&buffer[0], 1024, fmt, arg);
|
int sprf_res = stbsp_vsnprintf(&buffer[0], 1024, fmt, arg);
|
||||||
|
|
||||||
if (sprf_res < 0) return sprf_res;
|
if (sprf_res < 0) return sprf_res;
|
||||||
i32 pr_res = EPrint(&buffer);
|
|
||||||
|
|
||||||
return pr_res;
|
return EPrint(&buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
i32 _Printf(const char *fmt, va_list arg)
|
i32 _Printf(const char *fmt, va_list arg)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
HINSTANCE win32_instance = {};
|
HINSTANCE win32_instance = {0};
|
||||||
Window win32_window = {};
|
GameWindow win32_window = {0};
|
||||||
b32 global_quit = false;
|
b32 global_quit = false;
|
||||||
|
|
||||||
LRESULT CALLBACK WindowProc(HWND window, UINT message, WPARAM w_param, LPARAM l_param)
|
LRESULT CALLBACK WindowProc(HWND window, UINT message, WPARAM w_param, LPARAM l_param)
|
||||||
@ -10,13 +10,15 @@ LRESULT CALLBACK WindowProc(HWND window, UINT message, WPARAM w_param, LPARAM l_
|
|||||||
{
|
{
|
||||||
case WM_SIZE:
|
case WM_SIZE:
|
||||||
{
|
{
|
||||||
|
Printfln("Window resizing");
|
||||||
win32_window.w = LOWORD(l_param);
|
win32_window.w = LOWORD(l_param);
|
||||||
win32_window.h = HIWORD(l_param);
|
win32_window.h = HIWORD(l_param);
|
||||||
win32_window.resize_requested = true;
|
//SetRenderResolution(win32_window.w, win32_window.h);
|
||||||
} break;
|
} break;
|
||||||
case WM_DESTROY: // TODO(MA): Probably handle these separately but for now, they're together
|
case WM_DESTROY: // TODO(MA): Probably handle these separately but for now, they're together
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
{
|
{
|
||||||
|
Printf("quitting");
|
||||||
global_quit = true;
|
global_quit = true;
|
||||||
} break;
|
} break;
|
||||||
case WM_ACTIVATEAPP:
|
case WM_ACTIVATEAPP:
|
||||||
@ -32,15 +34,6 @@ LRESULT CALLBACK WindowProc(HWND window, UINT message, WPARAM w_param, LPARAM l_
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CALLBACK WinMain(HINSTANCE instance, HINSTANCE prev_instance, LPSTR cmd_line, int show_code)
|
|
||||||
{
|
|
||||||
win32_instance = instance;
|
|
||||||
|
|
||||||
int result = main(__argc, __argv);
|
|
||||||
|
|
||||||
PostQuitMessage(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
b32 _LoadLib(const char *name, Library *out_lib)
|
b32 _LoadLib(const char *name, Library *out_lib)
|
||||||
{
|
{
|
||||||
b32 success = true;
|
b32 success = true;
|
||||||
@ -72,12 +65,12 @@ b32 _InitPlatform()
|
|||||||
|
|
||||||
rawptr _MemAlloc(isize size)
|
rawptr _MemAlloc(isize size)
|
||||||
{
|
{
|
||||||
return NULL;
|
return (rawptr)VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
rawptr _MemAllocZeroed(isize size)
|
rawptr _MemAllocZeroed(isize size)
|
||||||
{
|
{
|
||||||
return NULL;
|
return _MemAlloc(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
isize _GetPageSize()
|
isize _GetPageSize()
|
||||||
@ -85,24 +78,61 @@ isize _GetPageSize()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
i32 _Write(void const *str, DWORD std_handle)
|
||||||
|
{
|
||||||
|
DWORD written;
|
||||||
|
BOOL success = WriteFile(GetStdHandle(std_handle), str, StrLen(str), &written, NULL);
|
||||||
|
return success ? (i32)written : -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
i32 _Printf(const char *fmt, va_list arg)
|
||||||
|
{
|
||||||
|
char buffer[1024];
|
||||||
|
|
||||||
|
int sprf_res = stbsp_vsnprintf(&buffer[0], 1024, fmt, arg);
|
||||||
|
|
||||||
|
i32 pr_res;
|
||||||
|
if (sprf_res < 0)
|
||||||
|
pr_res = sprf_res;
|
||||||
|
else
|
||||||
|
pr_res = _Write(buffer, STD_OUTPUT_HANDLE);
|
||||||
|
|
||||||
|
return pr_res;
|
||||||
|
}
|
||||||
|
|
||||||
|
i32 _Printfln(const char *fmt, va_list arg)
|
||||||
|
{
|
||||||
|
char buffer[1024];
|
||||||
|
|
||||||
|
int sprf_res = stbsp_vsnprintf(&buffer[0], 1023, fmt, arg);
|
||||||
|
|
||||||
|
i32 pr_res;
|
||||||
|
if (sprf_res < 0)
|
||||||
|
pr_res = sprf_res;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
buffer[sprf_res] = '\n';
|
||||||
|
buffer[sprf_res+1] = '\0';
|
||||||
|
pr_res = _Write(&buffer, STD_OUTPUT_HANDLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
return pr_res;
|
||||||
|
}
|
||||||
|
|
||||||
i32 _EPrint(void const *str)
|
i32 _EPrint(void const *str)
|
||||||
{
|
{
|
||||||
return 0;
|
return _Write(str, STD_ERROR_HANDLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
i32 _Printf(const char *fmt, ...)
|
i32 _EPrintf(const char *fmt, va_list arg)
|
||||||
{
|
{
|
||||||
return 0;
|
char buffer[1024];
|
||||||
}
|
|
||||||
|
|
||||||
i32 _Printfln(const char *fmt, ...)
|
int sprf_res = stbsp_vsnprintf(&buffer[0], 1024, fmt, arg);
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
i32 _EPrintf(const char *fmt, ...)
|
if (sprf_res < 0) return sprf_res;
|
||||||
{
|
|
||||||
return 0;
|
return EPrint(&buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
b32 _CreateWindow()
|
b32 _CreateWindow()
|
||||||
@ -122,11 +152,11 @@ b32 _CreateWindow()
|
|||||||
|
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
HWND window_handle = CreateWindowEx(
|
HWND window_handle = CreateWindowExA(
|
||||||
0,
|
0,
|
||||||
window_class.lpszClassName,
|
window_class.lpszClassName,
|
||||||
"Video Game",
|
"Video Game",
|
||||||
WS_OVERLAPPEDWINDOW|WS_VISIBLE,
|
(WS_OVERLAPPEDWINDOW ^ WS_THICKFRAME)|WS_VISIBLE,
|
||||||
CW_USEDEFAULT,
|
CW_USEDEFAULT,
|
||||||
CW_USEDEFAULT,
|
CW_USEDEFAULT,
|
||||||
CW_USEDEFAULT,
|
CW_USEDEFAULT,
|
||||||
@ -146,17 +176,28 @@ b32 _CreateWindow()
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
Window *_GetWindow()
|
GameWindow *_GetWindow()
|
||||||
{
|
{
|
||||||
return &win32_window;
|
return &win32_window;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _ProcessWindowEvents()
|
void GetWindowEvents()
|
||||||
{
|
{
|
||||||
|
BOOL has_msg = false;
|
||||||
|
MSG message;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
has_msg = PeekMessage(&message, 0, 0, 0, PM_REMOVE);
|
||||||
|
if (has_msg > 0)
|
||||||
|
{
|
||||||
|
TranslateMessage(&message);
|
||||||
|
DispatchMessage(&message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (has_msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _WaitForWindowEvent(WindowEvent *event)
|
void WaitForWindowEvent()
|
||||||
{
|
{
|
||||||
MSG message;
|
MSG message;
|
||||||
BOOL message_result = GetMessageA(&message, 0, 0, 0);
|
BOOL message_result = GetMessageA(&message, 0, 0, 0);
|
||||||
|
|||||||
@ -6,35 +6,6 @@
|
|||||||
|
|
||||||
#define WINDOW_CLASS_NAME "GearsWindowClass"
|
#define WINDOW_CLASS_NAME "GearsWindowClass"
|
||||||
|
|
||||||
typedef int8_t i8;
|
|
||||||
typedef int16_t i16;
|
|
||||||
typedef int32_t i32;
|
|
||||||
typedef int64_t i64;
|
|
||||||
|
|
||||||
typedef uint8_t u8;
|
|
||||||
typedef uint16_t u16;
|
|
||||||
typedef uint32_t u32;
|
|
||||||
typedef uint64_t u64;
|
|
||||||
|
|
||||||
typedef intptr_t intptr;
|
|
||||||
typedef uintptr_t uintptr;
|
|
||||||
|
|
||||||
#if defined ( _WIN64 )
|
|
||||||
typedef int64_t isize;
|
|
||||||
typedef uint64_t usize;
|
|
||||||
#elif defined ( _WIN32 )
|
|
||||||
typedef int32_t isize;
|
|
||||||
typedef uint32_t usize;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef float f32;
|
|
||||||
typedef double f64;
|
|
||||||
|
|
||||||
typedef uint8_t b8;
|
|
||||||
typedef uint32_t b32;
|
|
||||||
|
|
||||||
typedef void * rawptr;
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
HMODULE module;
|
HMODULE module;
|
||||||
@ -46,7 +17,7 @@ typedef struct
|
|||||||
HWND handle;
|
HWND handle;
|
||||||
u16 h, w;
|
u16 h, w;
|
||||||
b32 resize_requested;
|
b32 resize_requested;
|
||||||
} Window;
|
} GameWindow;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@ -62,12 +33,12 @@ rawptr _MemAllocZeroed(isize size);
|
|||||||
isize _GetPageSize();
|
isize _GetPageSize();
|
||||||
|
|
||||||
i32 _EPrint(void const *str);
|
i32 _EPrint(void const *str);
|
||||||
i32 _Printf(const char *fmt, ...);
|
i32 _Printf(const char *fmt, va_list arg);
|
||||||
i32 _Printfln(const char *fmt, ...);
|
i32 _Printfln(const char *fmt, va_list arg);
|
||||||
i32 _EPrintf(const char *fmt, ...);
|
i32 _EPrintf(const char *fmt, va_list arg);
|
||||||
|
|
||||||
b32 _CreateWindow();
|
b32 _CreateWindow();
|
||||||
Window *_GetWindow();
|
GameWindow *_GetWindow();
|
||||||
b32 _GetWindowEvent(WindowEvent *event);
|
void GetWindowEvents();
|
||||||
void _WaitForWindowEvent(WindowEvent *event);
|
void WaitForWindowEvent();
|
||||||
WindowSize _GetWindowSize();
|
WindowSize _GetWindowSize();
|
||||||
|
|||||||
@ -321,11 +321,11 @@ static void CopyImageToImage(VkCommandBuffer cmd, VkImage src, VkImage dst, VkEx
|
|||||||
VkImageBlit2 blit = {
|
VkImageBlit2 blit = {
|
||||||
.sType = STYPE(IMAGE_BLIT_2),
|
.sType = STYPE(IMAGE_BLIT_2),
|
||||||
.srcOffsets = {
|
.srcOffsets = {
|
||||||
{},
|
{0},
|
||||||
{ .x = (i32)src_ext.width, .y = (i32)src_ext.height, .z = 1 },
|
{ .x = (i32)src_ext.width, .y = (i32)src_ext.height, .z = 1 },
|
||||||
},
|
},
|
||||||
.dstOffsets = {
|
.dstOffsets = {
|
||||||
{},
|
{0},
|
||||||
{ .x = (i32)dst_ext.width, .y = (i32)dst_ext.height, .z = 1 },
|
{ .x = (i32)dst_ext.width, .y = (i32)dst_ext.height, .z = 1 },
|
||||||
},
|
},
|
||||||
.srcSubresource = {
|
.srcSubresource = {
|
||||||
@ -492,7 +492,7 @@ static DeviceQueues CheckDeviceQueueSupport(VkPhysicalDevice device, VkSurfaceKH
|
|||||||
static b32 CheckDevicePropertiesSupport(VkPhysicalDevice device, VkSurfaceKHR surface, b32 *discrete)
|
static b32 CheckDevicePropertiesSupport(VkPhysicalDevice device, VkSurfaceKHR surface, b32 *discrete)
|
||||||
{
|
{
|
||||||
b32 success = false;
|
b32 success = false;
|
||||||
VkPhysicalDeviceProperties properties = {};
|
VkPhysicalDeviceProperties properties = {0};
|
||||||
vkGetPhysicalDeviceProperties(device, &properties);
|
vkGetPhysicalDeviceProperties(device, &properties);
|
||||||
|
|
||||||
if (VK_API_VERSION_MINOR(properties.apiVersion) >= 3)
|
if (VK_API_VERSION_MINOR(properties.apiVersion) >= 3)
|
||||||
@ -593,7 +593,7 @@ static b32 CreateDevice()
|
|||||||
b32 success = false;
|
b32 success = false;
|
||||||
if (phys_device != NULL)
|
if (phys_device != NULL)
|
||||||
{
|
{
|
||||||
VkDeviceQueueCreateInfo queue_info[2] = {};
|
VkDeviceQueueCreateInfo queue_info[2] = {0};
|
||||||
f32 priority = 1.0f;
|
f32 priority = 1.0f;
|
||||||
u32 count = 1;
|
u32 count = 1;
|
||||||
|
|
||||||
@ -652,6 +652,14 @@ static b32 InitVkInstanceFunctions()
|
|||||||
{
|
{
|
||||||
INIT_INST_FN(vkCreateXcbSurfaceKHR);
|
INIT_INST_FN(vkCreateXcbSurfaceKHR);
|
||||||
}
|
}
|
||||||
|
#elif _WIN32
|
||||||
|
{
|
||||||
|
INIT_INST_FN(vkCreateWin32SurfaceKHR);
|
||||||
|
}
|
||||||
|
#elif __APPLE__ || __MACH__
|
||||||
|
#error Not yet implemented
|
||||||
|
#elif __unix__ && !__linux__
|
||||||
|
#error Not yet implemented
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef BUILD_DEBUG
|
#ifdef BUILD_DEBUG
|
||||||
@ -762,11 +770,23 @@ static b32 CreateSurface()
|
|||||||
#elif _WIN32
|
#elif _WIN32
|
||||||
static b32 CreateSurface()
|
static b32 CreateSurface()
|
||||||
{
|
{
|
||||||
Window *window = GetWindowPtr();
|
b32 success = true;
|
||||||
|
|
||||||
|
GameWindow *window = GetWindowPtr();
|
||||||
VkWin32SurfaceCreateInfoKHR surface_info = {
|
VkWin32SurfaceCreateInfoKHR surface_info = {
|
||||||
.sType = STYPE(WIN_32_SURFACE_CREATE_INFO_KHR),
|
.sType = STYPE(WIN32_SURFACE_CREATE_INFO_KHR),
|
||||||
.hinstance =
|
.hinstance = window->instance,
|
||||||
|
.hwnd = window->handle,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
VkResult result = vkCreateWin32SurfaceKHR(renderer.vk.inst, &surface_info, NULL, &renderer.vk.surface);
|
||||||
|
if (result != VK_SUCCESS)
|
||||||
|
{
|
||||||
|
Printfln("Unable to create surface: %s", VkResultStr(result));
|
||||||
|
success = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@ -63,8 +63,15 @@ VK_DECLARE(vkGetPhysicalDeviceImageFormatProperties);
|
|||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
VK_DECLARE(vkCreateXcbSurfaceKHR);
|
VK_DECLARE(vkCreateXcbSurfaceKHR);
|
||||||
|
#elif _WIN32
|
||||||
|
VK_DECLARE(vkCreateWin32SurfaceKHR);
|
||||||
|
#elif __APPLE__ || __MACH__
|
||||||
|
#error Not yet implemented
|
||||||
|
#elif __unix__ && !__linux__
|
||||||
|
#error Not yet implemented
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef BUILD_DEBUG
|
#ifdef BUILD_DEBUG
|
||||||
VK_DECLARE(vkCreateDebugUtilsMessengerEXT);
|
VK_DECLARE(vkCreateDebugUtilsMessengerEXT);
|
||||||
VK_DECLARE(vkDestroyDebugUtilsMessengerEXT);
|
VK_DECLARE(vkDestroyDebugUtilsMessengerEXT);
|
||||||
@ -271,10 +278,10 @@ static b32 InitVkInstanceFunctions();
|
|||||||
static b32 InitVkGlobalFunctions();
|
static b32 InitVkGlobalFunctions();
|
||||||
static b32 CreateSurface();
|
static b32 CreateSurface();
|
||||||
static b32 CreateDevice();
|
static b32 CreateDevice();
|
||||||
static b32 CheckQueueSurfaceSupport();
|
static b32 CheckQueueSurfaceSupport(i32 index, VkPhysicalDevice device, VkSurfaceKHR surface);
|
||||||
static DeviceQueues CheckDeviceQueueSupport();
|
static DeviceQueues CheckDeviceQueueSupport(VkPhysicalDevice device, VkSurfaceKHR surface);
|
||||||
static b32 CheckDevicePropertiesSupport();
|
static b32 CheckDevicePropertiesSupport(VkPhysicalDevice device, VkSurfaceKHR surface, b32 *discrete);
|
||||||
static b32 CheckDeviceFeatureSupport();
|
static b32 CheckDeviceFeatureSupport(VkPhysicalDevice device);
|
||||||
static b32 InitVkDeviceFunctions();
|
static b32 InitVkDeviceFunctions();
|
||||||
static b32 CreateVmaAllocator();
|
static b32 CreateVmaAllocator();
|
||||||
static b32 CreateFrameStructures();
|
static b32 CreateFrameStructures();
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
@ -27,8 +28,40 @@ typedef uint8_t b8;
|
|||||||
typedef uint32_t b32;
|
typedef uint32_t b32;
|
||||||
|
|
||||||
typedef void * rawptr;
|
typedef void * rawptr;
|
||||||
|
|
||||||
#elif _WIN32
|
#elif _WIN32
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
typedef int8_t i8;
|
||||||
|
typedef int16_t i16;
|
||||||
|
typedef int32_t i32;
|
||||||
|
typedef int64_t i64;
|
||||||
|
|
||||||
|
typedef uint8_t u8;
|
||||||
|
typedef uint16_t u16;
|
||||||
|
typedef uint32_t u32;
|
||||||
|
typedef uint64_t u64;
|
||||||
|
|
||||||
|
typedef intptr_t intptr;
|
||||||
|
typedef uintptr_t uintptr;
|
||||||
|
|
||||||
|
#if defined ( _WIN64 )
|
||||||
|
typedef int64_t isize;
|
||||||
|
typedef uint64_t usize;
|
||||||
|
#elif defined ( _WIN32 )
|
||||||
|
typedef int32_t isize;
|
||||||
|
typedef uint32_t usize;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef float f32;
|
||||||
|
typedef double f64;
|
||||||
|
|
||||||
|
typedef uint8_t b8;
|
||||||
|
typedef uint32_t b32;
|
||||||
|
|
||||||
|
typedef void * rawptr;
|
||||||
|
|
||||||
#elif __APPLE__ || __MACH__
|
#elif __APPLE__ || __MACH__
|
||||||
|
|
||||||
#else // unix
|
#else // unix
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user