started work on windows platform layer
This commit is contained in:
parent
b627a30675
commit
48c7e3f86d
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
build
|
build/
|
||||||
|
|||||||
11
build.bat
Normal file
11
build.bat
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
@echo off
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
|
set vulkan_include=C:\VulkanSDK\1.4.304.1\Include
|
||||||
|
|
||||||
|
|
||||||
|
mkdir build
|
||||||
|
pushd build
|
||||||
|
cl /c /I ..\external\vma /I %vulkan_include% ..\external\vma\vma.cpp
|
||||||
|
cl /I ..\external ..\src\main.c
|
||||||
|
popd
|
||||||
@ -3,7 +3,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _WIN32
|
#if _WIN32
|
||||||
#error Not yet implemented
|
#include "platform_windows.c"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __APPLE__ || __MACH__
|
#if __APPLE__ || __MACH__
|
||||||
|
|||||||
@ -9,7 +9,7 @@ typedef struct WindowSize WindowSize;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _WIN32
|
#if _WIN32
|
||||||
#error Not yet implemented
|
#include "platform_windows.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __APPLE__ || __MACH__
|
#if __APPLE__ || __MACH__
|
||||||
|
|||||||
@ -12,14 +12,6 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
|
||||||
#define Assert(condition, message) do { assert(condition && message); } while(0)
|
|
||||||
|
|
||||||
// generic defines
|
|
||||||
#define KB(n) n * 1024LL
|
|
||||||
#define MB(n) KB(n) * 1024LL
|
|
||||||
#define GB(n) MB(n) * 1024LL
|
|
||||||
#define TB(n) GB(n) * 1024LL
|
|
||||||
|
|
||||||
// syscall defines
|
// syscall defines
|
||||||
#define SYS_ERR -1
|
#define SYS_ERR -1
|
||||||
|
|
||||||
|
|||||||
42
src/platform_windows.c
Normal file
42
src/platform_windows.c
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
LRESULT CALLBACK WindowProc(HWND window, UINT message, WPARAM w_param, LPARAM l_param)
|
||||||
|
{
|
||||||
|
LRESULT result = 0;
|
||||||
|
|
||||||
|
switch (message)
|
||||||
|
{
|
||||||
|
case WM_SIZE:
|
||||||
|
{
|
||||||
|
OutputDebugStringA("WM_SIZE\n");
|
||||||
|
} break;
|
||||||
|
case WM_DESTROY:
|
||||||
|
{
|
||||||
|
OutputDebugStringA("WM_DESTROY\n");
|
||||||
|
} break;
|
||||||
|
case WM_CLOSE:
|
||||||
|
{
|
||||||
|
OutputDebugStringA("WM_CLOSE\n");
|
||||||
|
} break;
|
||||||
|
case WM_ACTIVATEAPP:
|
||||||
|
{
|
||||||
|
OutputDebugStringA("WM_ACTIVATEAPP\n");
|
||||||
|
} break;
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
result = DefWindowProc(window, message, w_param, l_param);
|
||||||
|
} break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CALLBACK WinMain(HINSTANCE instance, HINSTANCE prev_instance, LPSTR cmd_line, int show_code)
|
||||||
|
{
|
||||||
|
WNDCLASS window_class = {
|
||||||
|
.style = CS_OWNDC|CS_HREDREAW|CS_VREDRAW,
|
||||||
|
.lpfnWndProc = ,
|
||||||
|
.hInstance = instance,
|
||||||
|
.lpszClassName = "GearsWindowClass",
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
68
src/platform_windows.h
Normal file
68
src/platform_windows.h
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdbool.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;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
i32 lib;
|
||||||
|
} Library;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
i32 win;
|
||||||
|
} Window;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
i32 fn;
|
||||||
|
} Function;
|
||||||
|
|
||||||
|
b32 _LoadLib(const char *name, Library *out_lib);
|
||||||
|
b32 _LoadFn(const char *name, Library *lib, Function *out_fn);
|
||||||
|
|
||||||
|
b32 _InitPlatform();
|
||||||
|
rawptr _MemAlloc(isize size);
|
||||||
|
rawptr _MemAllocZeroed(isize size);
|
||||||
|
isize _GetPageSize();
|
||||||
|
|
||||||
|
i32 _EPrint(void const *str);
|
||||||
|
i32 _Printf(const char *fmt, ...);
|
||||||
|
i32 _Printfln(const char *fmt, ...);
|
||||||
|
i32 _EPrintf(const char *fmt, ...);
|
||||||
|
|
||||||
|
b32 _CreateWindow();
|
||||||
|
Window *_GetWindow();
|
||||||
|
b32 _GetWindowEvent(WindowEvent *event);
|
||||||
|
void _WaitForWindowEvent(WindowEvent *event);
|
||||||
|
WindowSize _GetWindowSize();
|
||||||
@ -2,6 +2,14 @@
|
|||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
#define Assert(condition, message) do { assert(condition && message); } while(0)
|
||||||
|
|
||||||
|
// generic defines
|
||||||
|
#define KB(n) n * 1024LL
|
||||||
|
#define MB(n) KB(n) * 1024LL
|
||||||
|
#define GB(n) MB(n) * 1024LL
|
||||||
|
#define TB(n) GB(n) * 1024LL
|
||||||
|
|
||||||
#define DEFAULT_ALIGNMENT (2*sizeof(rawptr))
|
#define DEFAULT_ALIGNMENT (2*sizeof(rawptr))
|
||||||
|
|
||||||
#define Len(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
|
#define Len(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user