summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--Makefile2
-rw-r--r--app.cpp312
-rw-r--r--asset.cpp3
-rw-r--r--c2.cpp3
-rw-r--r--convtexture.c2
-rw-r--r--maths.cpp2
-rw-r--r--msbuild/c2.sln114
-rw-r--r--msbuild/c2.vcxproj186
-rw-r--r--msbuild/c2.vcxproj.filters60
-rw-r--r--msbuild/cfg/cfg.vcxproj158
-rw-r--r--msbuild/cfg/cfg.vcxproj.filters27
-rw-r--r--msbuild/convtexture/convtexture.vcxproj168
-rw-r--r--msbuild/convtexture/convtexture.vcxproj.filters22
-rw-r--r--msbuild/pack/pack.vcxproj177
-rw-r--r--msbuild/pack/pack.vcxproj.filters22
-rw-r--r--msbuild/pack/thing.txt1
-rw-r--r--msbuild/packer/packer.vcxproj168
-rw-r--r--msbuild/packer/packer.vcxproj.filters22
-rw-r--r--msbuild/qstd/qstd.vcxproj160
-rw-r--r--msbuild/qstd/qstd.vcxproj.filters45
-rw-r--r--msbuild/sc/sc.vcxproj180
-rw-r--r--msbuild/sc/sc.vcxproj.filters33
-rw-r--r--msbuild/shaders/shaders.vcxproj205
-rw-r--r--msbuild/shaders/shaders.vcxproj.filters25
-rw-r--r--msbuild/textures/textures.vcxproj187
-rw-r--r--msbuild/textures/textures.vcxproj.filters25
-rw-r--r--packer.c2
-rw-r--r--qstd/plat.c70
-rw-r--r--qstd/str.c4
-rw-r--r--sc/sc.cpp6
-rw-r--r--video.cpp32
32 files changed, 2379 insertions, 49 deletions
diff --git a/.gitignore b/.gitignore
index 31453af..5c4083a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,11 @@ tags
*.d
*.o
+*.exe
+*.vcxproj.user
+/msbuild/.vs
+/msbuild/obj
+/msbuild/bin
/data/
/cfg/libcfg.a
/qstd/libqstd.a
diff --git a/Makefile b/Makefile
index 68b6b62..1ac5f97 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ target = c2
data_dir = data
shaders = $(data_dir)/triangle.csh $(data_dir)/ui.csh
textures = $(data_dir)/22.tex $(data_dir)/kita.tex
-packed_files = $(shaders) $(textures)
+packed_files = $(notdir $(shaders)) $(notdir $(textures))
tools = qstd cfg sc
objects = app.o c2.o video.o pipeline.o asset.o ui.o maths.o
includes = -Iqstd
diff --git a/app.cpp b/app.cpp
index e1d3913..0eaf439 100644
--- a/app.cpp
+++ b/app.cpp
@@ -3,8 +3,11 @@
extern "C" {
#include "memory.h"
#include "plat.h"
+
+extern int entrypoint();
}
+
#ifdef plat_x11
#include <X11/Xlib.h>
#include <X11/Xutil.h>
@@ -237,6 +240,277 @@ struct App_Internal {
}
};
+extern "C" {
+#define GLAD_VULKAN_IMPLEMENTATION
+#define VK_USE_PLATFORM_XLIB_KHR
+#include "glad_vk.h"
+VkSurfaceKHR app_create_vk_surface(App* app, VkInstance inst) {
+ App_Internal* i;
+ VkSurfaceKHR s;
+ VkXlibSurfaceCreateInfoKHR ci{};
+ VkResult r;
+ i = app->internal;
+ ci.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
+ ci.dpy = i->d;
+ ci.window = i->wi;
+ r = vkCreateXlibSurfaceKHR(inst, &ci, 0, &s);
+ if (r != VK_SUCCESS) {
+ print_err("Failed to create a Vulkan surface.");
+ pbreak(r);
+ }
+ return s;
+}
+
+void app_destroy_vk_surface(
+ App* app,
+ VkInstance inst,
+ VkSurfaceKHR surf
+) {
+ (void)app;
+ vkDestroySurfaceKHR(inst, surf, 0);
+}
+}
+
+int main() {
+ return entrypoint();
+}
+
+#endif
+
+#ifdef plat_win
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winuser.h>
+
+Key key_from_vk(unsigned key) {
+ switch (key) {
+ case 0x00: return key_unknown;
+ case 0x41: return key_A;
+ case 0x42: return key_B;
+ case 0x43: return key_C;
+ case 0x44: return key_D;
+ case 0x45: return key_E;
+ case 0x46: return key_F;
+ case 0x47: return key_G;
+ case 0x48: return key_H;
+ case 0x49: return key_I;
+ case 0x4a: return key_J;
+ case 0x4b: return key_K;
+ case 0x4c: return key_L;
+ case 0x4d: return key_M;
+ case 0x4e: return key_N;
+ case 0x4f: return key_O;
+ case 0x50: return key_P;
+ case 0x51: return key_Q;
+ case 0x52: return key_R;
+ case 0x53: return key_S;
+ case 0x54: return key_T;
+ case 0x55: return key_U;
+ case 0x56: return key_V;
+ case 0x57: return key_W;
+ case 0x58: return key_X;
+ case 0x59: return key_Y;
+ case 0x5a: return key_Z;
+ case VK_F1: return key_f1;
+ case VK_F2: return key_f2;
+ case VK_F3: return key_f3;
+ case VK_F4: return key_f4;
+ case VK_F5: return key_f5;
+ case VK_F6: return key_f6;
+ case VK_F7: return key_f7;
+ case VK_F8: return key_f8;
+ case VK_F9: return key_f9;
+ case VK_F10: return key_f10;
+ case VK_F11: return key_f11;
+ case VK_F12: return key_f12;
+ case VK_DOWN: return key_down;
+ case VK_LEFT: return key_left;
+ case VK_RIGHT: return key_right;
+ case VK_UP: return key_up;
+ case VK_ESCAPE: return key_escape;
+ case VK_BACK: return key_backspace;
+ case VK_RETURN: return key_return;
+ case VK_TAB: return key_tab;
+ case VK_DELETE: return key_delete;
+ case VK_HOME: return key_home;
+ case VK_END: return key_end;
+ case VK_PRIOR: return key_page_up;
+ case VK_NEXT: return key_page_down;
+ case VK_INSERT: return key_insert;
+ case 16: return key_shift;
+ case 17: return key_control;
+ case 91: return key_super;
+ case VK_LMENU: return key_alt;
+ case VK_RMENU: return key_alt;
+ case VK_SPACE: return key_space;
+ case 0x30: return key_0;
+ case 0x31: return key_1;
+ case 0x32: return key_2;
+ case 0x33: return key_3;
+ case 0x34: return key_4;
+ case 0x35: return key_5;
+ case 0x36: return key_6;
+ case 0x37: return key_7;
+ case 0x38: return key_8;
+ case 0x39: return key_9;
+ }
+ return key_unknown;
+}
+
+static LRESULT CALLBACK win32_event_callback(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
+
+struct App_Internal {
+ HWND window;
+
+ RECT rect;
+
+ void init(App* app, const char* name) {
+ const int default_w = 1920;
+ const int default_h = 1080;
+ int create_w, create_h;
+ const DWORD dw_ex_style = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
+ const DWORD dw_style = WS_CAPTION | WS_SYSMENU |
+ WS_MINIMIZEBOX | WS_VISIBLE | WS_THICKFRAME | WS_MAXIMIZEBOX;
+ RECT win_rect = { 0, 0, default_w, default_h };
+ WNDCLASSA wc{};
+ wc.hIcon = LoadIcon(0, IDI_APPLICATION);
+ wc.hCursor = LoadCursor(0, IDC_ARROW);
+ wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+ wc.hInstance = GetModuleHandle(0);
+ wc.lpfnWndProc = win32_event_callback;
+ wc.lpszClassName = "corrosion_2";
+ RegisterClassA(&wc);
+ AdjustWindowRectEx(&win_rect, dw_style, FALSE, dw_ex_style);
+ create_w = win_rect.right - win_rect.left;
+ create_h = win_rect.bottom - win_rect.top;
+ window = CreateWindowExA(dw_ex_style, "corrosion_2", name, dw_style, 100, 100,
+ create_w, create_h, 0, 0, GetModuleHandle(0), 0);
+ assert(window != 0);
+ app->w = create_w;
+ app->h = create_h;
+ SetWindowLongPtr(window, GWLP_USERDATA, (LONG_PTR)app);
+ }
+
+ void begin(App* app) {
+ MSG msg;
+ while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+
+ void end(App* app) {
+ (void)app;
+ }
+};
+
+static LRESULT CALLBACK win32_event_callback(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
+ App* app = (App*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
+ if (!app) return DefWindowProc(hwnd, msg, wparam, lparam);
+ switch (msg) {
+ case WM_CLOSE:
+ app->running = 0;
+ return 0;
+ case WM_SIZE:
+ app->w = lparam & 0xffff;
+ app->h = (lparam >> 16) & 0xffff;
+ app->on_resize();
+ return 0;
+ case WM_MOUSEMOVE:
+ app->mx = lparam & 0xffff;
+ app->my = (lparam >> 16) & 0xffff;
+ return 0;
+ case WM_LBUTTONDOWN:
+ app->mbtn_states[mbtn_left] |=
+ key_state_pressed |
+ key_state_just_pressed;
+ return 0;
+ case WM_MBUTTONDOWN:
+ app->mbtn_states[mbtn_middle] |=
+ key_state_pressed |
+ key_state_just_pressed;
+ return 0;
+ case WM_RBUTTONDOWN:
+ app->mbtn_states[mbtn_right] |=
+ key_state_pressed |
+ key_state_just_pressed;
+ return 0;
+ case WM_LBUTTONUP:
+ app->mbtn_states[mbtn_left] &= ~key_state_pressed;
+ app->mbtn_states[mbtn_left] |= key_state_just_released;
+ return 0;
+ case WM_MBUTTONUP:
+ app->mbtn_states[mbtn_middle] &= ~key_state_pressed;
+ app->mbtn_states[mbtn_middle] |= key_state_just_released;
+ return 0;
+ case WM_RBUTTONUP:
+ app->mbtn_states[mbtn_right] &= ~key_state_pressed;
+ app->mbtn_states[mbtn_right] |= key_state_just_released;
+ return 0;
+ case WM_MOUSEWHEEL:
+ app->scrolly += GET_WHEEL_DELTA_WPARAM(wparam) > 1 ? 1 : -1;
+ return 0;
+ case WM_KEYDOWN: {
+ Key key = key_from_vk((unsigned)wparam);
+ app->key_states[key] |=
+ key_state_pressed |
+ key_state_just_pressed;
+ } return 0;
+ case WM_KEYUP: {
+ Key key = key_from_vk((unsigned)wparam);
+ app->key_states[key] &= ~key_state_pressed;
+ app->key_states[key] |= key_state_just_released;
+ } return 0;
+ }
+ return DefWindowProc(hwnd, msg, wparam, lparam);
+}
+
+HINSTANCE g_instance;
+
+extern "C" {
+#define GLAD_VULKAN_IMPLEMENTATION
+#define VK_USE_PLATFORM_WIN32_KHR
+#include "glad_vk.h"
+VkSurfaceKHR app_create_vk_surface(App* app, VkInstance inst) {
+ App_Internal* i;
+ VkSurfaceKHR s;
+ VkWin32SurfaceCreateInfoKHR ci{};
+ VkResult r;
+ i = app->internal;
+ ci.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
+ ci.hwnd = i->window;
+ ci.hinstance = g_instance;
+ r = vkCreateWin32SurfaceKHR(inst, &ci, 0, &s);
+ if (r != VK_SUCCESS) {
+ print_err("Failed to create a Vulkan surface.");
+ pbreak(r);
+ }
+ return s;
+}
+
+void app_destroy_vk_surface(
+ App* app,
+ VkInstance inst,
+ VkSurfaceKHR surf
+) {
+ (void)app;
+ vkDestroySurfaceKHR(inst, surf, 0);
+}
+}
+
+int WinMain(
+ HINSTANCE instance,
+ HINSTANCE pinstance,
+ LPSTR argv,
+ int show_cmd
+) {
+ (void)pinstance;
+ (void)argv;
+ (void)show_cmd;
+ g_instance = instance;
+ return entrypoint();
+}
+
#endif
void App::init(const char* name) {
@@ -310,35 +584,11 @@ bool App::mjr(Mbtn b) {
void App::get_vk_exts(const char** exts, int& count) {
exts[count++] = "VK_KHR_surface";
+#if defined(plat_x11)
exts[count++] = "VK_KHR_xlib_surface";
-}
-
-extern "C" {
-#define VK_USE_PLATFORM_XLIB_KHR
-#include "glad_vk.h"
-VkSurfaceKHR app_create_vk_surface(App* app, VkInstance inst) {
- App_Internal* i;
- VkSurfaceKHR s;
- VkXlibSurfaceCreateInfoKHR ci{};
- VkResult r;
- i = app->internal;
- ci.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
- ci.dpy = i->d;
- ci.window = i->wi;
- r = vkCreateXlibSurfaceKHR(inst, &ci, 0, &s);
- if (r != VK_SUCCESS) {
- print_err("Failed to create a Vulkan surface.");
- pbreak(r);
- }
- return s;
-}
-
-void app_destroy_vk_surface(
- App* app,
- VkInstance inst,
- VkSurfaceKHR surf
-) {
- (void)app;
- vkDestroySurfaceKHR(inst, surf, 0);
-}
-}
+#elif defined(plat_win)
+ exts[count++] = "VK_KHR_win32_surface";
+#else
+ #error
+#endif
+} \ No newline at end of file
diff --git a/asset.cpp b/asset.cpp
index fc6d22b..fc8abde 100644
--- a/asset.cpp
+++ b/asset.cpp
@@ -26,7 +26,7 @@ struct Manager {
}
RLoader* find_loader(const char* magic) {
- uint32_t hash = hash_string(magic);
+ uint32_t hash = fnv1a64((uint8_t*)magic, 4);
int bucket = (int)(hash % max_asset_types);
int i;
for (i = 0; i < max_asset_types; i++) {
@@ -68,6 +68,7 @@ void register_asset_loader(
void Asset_Arena::init(Arena* arena, const char* pack_name) {
p = pack_open(pack_name, arena);
+ assert(p != 0);
a = arena;
s = (Arena*)arena_alloc(a, sizeof *s);
init_arena(
diff --git a/c2.cpp b/c2.cpp
index 223e0b0..ba07606 100644
--- a/c2.cpp
+++ b/c2.cpp
@@ -65,7 +65,7 @@ struct Config_Buffer {
float offset[2];
};
-int main() {
+extern "C" int entrypoint() {
Arena video_arena, asset_arena, ui_arena;
Asset_Arena assets;
Device* dev;
@@ -180,4 +180,5 @@ int main() {
dev->destroy_buffer(cbuf);
dev->destroy();
app->destroy();
+ return 0;
}
diff --git a/convtexture.c b/convtexture.c
index 2670b59..a321a9d 100644
--- a/convtexture.c
+++ b/convtexture.c
@@ -39,7 +39,7 @@ unsigned encode_endpoint(const vec3* v) {
void get_block(Block* block, Colour* pixels, int stride) {
int x, y, i;
vec3 cols[4 * 4];
- vec3 palette[3];
+ vec3 palette[4];
vec3 s, e;
unsigned es, ee;
float cd;
diff --git a/maths.cpp b/maths.cpp
index ed8948f..107f321 100644
--- a/maths.cpp
+++ b/maths.cpp
@@ -1,5 +1,7 @@
#include "maths.hpp"
+#include <algorithm>
+
m4f::m4f() {}
m4f::m4f(float d) {
diff --git a/msbuild/c2.sln b/msbuild/c2.sln
new file mode 100644
index 0000000..0d64859
--- /dev/null
+++ b/msbuild/c2.sln
@@ -0,0 +1,114 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.10.34928.147
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "c2", "c2.vcxproj", "{2EB76DF5-7119-4CB6-86F0-87EB929BE79C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {1BB0EFA0-F482-4D8C-ADCC-946343D3FE02} = {1BB0EFA0-F482-4D8C-ADCC-946343D3FE02}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qstd", "qstd\qstd.vcxproj", "{1BB0EFA0-F482-4D8C-ADCC-946343D3FE02}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sc", "sc\sc.vcxproj", "{86C58EC1-51ED-4EC6-85A4-2FDF153DD92A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cfg", "cfg\cfg.vcxproj", "{5B5D6195-0EFC-4DAD-80F5-DB69530F9E33}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shaders", "shaders\shaders.vcxproj", "{C3EF6E38-D98F-4341-8373-571253F405BD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "convtexture", "convtexture\convtexture.vcxproj", "{21C708D3-6F35-4C2B-A53E-9E06D8220218}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textures", "textures\textures.vcxproj", "{0E0E5A6A-51C0-494D-8816-932422ADE2BA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "packer", "packer\packer.vcxproj", "{3987E63D-CB96-42EB-BA88-A3AF3F640897}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pack", "pack\pack.vcxproj", "{F1112477-5C76-4351-A4B4-7E6266274F23}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {2EB76DF5-7119-4CB6-86F0-87EB929BE79C}.Debug|x64.ActiveCfg = Debug|x64
+ {2EB76DF5-7119-4CB6-86F0-87EB929BE79C}.Debug|x64.Build.0 = Debug|x64
+ {2EB76DF5-7119-4CB6-86F0-87EB929BE79C}.Debug|x86.ActiveCfg = Debug|Win32
+ {2EB76DF5-7119-4CB6-86F0-87EB929BE79C}.Debug|x86.Build.0 = Debug|Win32
+ {2EB76DF5-7119-4CB6-86F0-87EB929BE79C}.Release|x64.ActiveCfg = Release|x64
+ {2EB76DF5-7119-4CB6-86F0-87EB929BE79C}.Release|x64.Build.0 = Release|x64
+ {2EB76DF5-7119-4CB6-86F0-87EB929BE79C}.Release|x86.ActiveCfg = Release|Win32
+ {2EB76DF5-7119-4CB6-86F0-87EB929BE79C}.Release|x86.Build.0 = Release|Win32
+ {1BB0EFA0-F482-4D8C-ADCC-946343D3FE02}.Debug|x64.ActiveCfg = Debug|x64
+ {1BB0EFA0-F482-4D8C-ADCC-946343D3FE02}.Debug|x64.Build.0 = Debug|x64
+ {1BB0EFA0-F482-4D8C-ADCC-946343D3FE02}.Debug|x86.ActiveCfg = Debug|Win32
+ {1BB0EFA0-F482-4D8C-ADCC-946343D3FE02}.Debug|x86.Build.0 = Debug|Win32
+ {1BB0EFA0-F482-4D8C-ADCC-946343D3FE02}.Release|x64.ActiveCfg = Release|x64
+ {1BB0EFA0-F482-4D8C-ADCC-946343D3FE02}.Release|x64.Build.0 = Release|x64
+ {1BB0EFA0-F482-4D8C-ADCC-946343D3FE02}.Release|x86.ActiveCfg = Release|Win32
+ {1BB0EFA0-F482-4D8C-ADCC-946343D3FE02}.Release|x86.Build.0 = Release|Win32
+ {86C58EC1-51ED-4EC6-85A4-2FDF153DD92A}.Debug|x64.ActiveCfg = Debug|x64
+ {86C58EC1-51ED-4EC6-85A4-2FDF153DD92A}.Debug|x64.Build.0 = Debug|x64
+ {86C58EC1-51ED-4EC6-85A4-2FDF153DD92A}.Debug|x86.ActiveCfg = Debug|Win32
+ {86C58EC1-51ED-4EC6-85A4-2FDF153DD92A}.Debug|x86.Build.0 = Debug|Win32
+ {86C58EC1-51ED-4EC6-85A4-2FDF153DD92A}.Release|x64.ActiveCfg = Release|x64
+ {86C58EC1-51ED-4EC6-85A4-2FDF153DD92A}.Release|x64.Build.0 = Release|x64
+ {86C58EC1-51ED-4EC6-85A4-2FDF153DD92A}.Release|x86.ActiveCfg = Release|Win32
+ {86C58EC1-51ED-4EC6-85A4-2FDF153DD92A}.Release|x86.Build.0 = Release|Win32
+ {5B5D6195-0EFC-4DAD-80F5-DB69530F9E33}.Debug|x64.ActiveCfg = Debug|x64
+ {5B5D6195-0EFC-4DAD-80F5-DB69530F9E33}.Debug|x64.Build.0 = Debug|x64
+ {5B5D6195-0EFC-4DAD-80F5-DB69530F9E33}.Debug|x86.ActiveCfg = Debug|Win32
+ {5B5D6195-0EFC-4DAD-80F5-DB69530F9E33}.Debug|x86.Build.0 = Debug|Win32
+ {5B5D6195-0EFC-4DAD-80F5-DB69530F9E33}.Release|x64.ActiveCfg = Release|x64
+ {5B5D6195-0EFC-4DAD-80F5-DB69530F9E33}.Release|x64.Build.0 = Release|x64
+ {5B5D6195-0EFC-4DAD-80F5-DB69530F9E33}.Release|x86.ActiveCfg = Release|Win32
+ {5B5D6195-0EFC-4DAD-80F5-DB69530F9E33}.Release|x86.Build.0 = Release|Win32
+ {C3EF6E38-D98F-4341-8373-571253F405BD}.Debug|x64.ActiveCfg = Debug|x64
+ {C3EF6E38-D98F-4341-8373-571253F405BD}.Debug|x64.Build.0 = Debug|x64
+ {C3EF6E38-D98F-4341-8373-571253F405BD}.Debug|x86.ActiveCfg = Debug|Win32
+ {C3EF6E38-D98F-4341-8373-571253F405BD}.Debug|x86.Build.0 = Debug|Win32
+ {C3EF6E38-D98F-4341-8373-571253F405BD}.Release|x64.ActiveCfg = Release|x64
+ {C3EF6E38-D98F-4341-8373-571253F405BD}.Release|x64.Build.0 = Release|x64
+ {C3EF6E38-D98F-4341-8373-571253F405BD}.Release|x86.ActiveCfg = Release|Win32
+ {C3EF6E38-D98F-4341-8373-571253F405BD}.Release|x86.Build.0 = Release|Win32
+ {21C708D3-6F35-4C2B-A53E-9E06D8220218}.Debug|x64.ActiveCfg = Debug|x64
+ {21C708D3-6F35-4C2B-A53E-9E06D8220218}.Debug|x64.Build.0 = Debug|x64
+ {21C708D3-6F35-4C2B-A53E-9E06D8220218}.Debug|x86.ActiveCfg = Debug|Win32
+ {21C708D3-6F35-4C2B-A53E-9E06D8220218}.Debug|x86.Build.0 = Debug|Win32
+ {21C708D3-6F35-4C2B-A53E-9E06D8220218}.Release|x64.ActiveCfg = Release|x64
+ {21C708D3-6F35-4C2B-A53E-9E06D8220218}.Release|x64.Build.0 = Release|x64
+ {21C708D3-6F35-4C2B-A53E-9E06D8220218}.Release|x86.ActiveCfg = Release|Win32
+ {21C708D3-6F35-4C2B-A53E-9E06D8220218}.Release|x86.Build.0 = Release|Win32
+ {0E0E5A6A-51C0-494D-8816-932422ADE2BA}.Debug|x64.ActiveCfg = Debug|x64
+ {0E0E5A6A-51C0-494D-8816-932422ADE2BA}.Debug|x64.Build.0 = Debug|x64
+ {0E0E5A6A-51C0-494D-8816-932422ADE2BA}.Debug|x86.ActiveCfg = Debug|Win32
+ {0E0E5A6A-51C0-494D-8816-932422ADE2BA}.Debug|x86.Build.0 = Debug|Win32
+ {0E0E5A6A-51C0-494D-8816-932422ADE2BA}.Release|x64.ActiveCfg = Release|x64
+ {0E0E5A6A-51C0-494D-8816-932422ADE2BA}.Release|x64.Build.0 = Release|x64
+ {0E0E5A6A-51C0-494D-8816-932422ADE2BA}.Release|x86.ActiveCfg = Release|Win32
+ {0E0E5A6A-51C0-494D-8816-932422ADE2BA}.Release|x86.Build.0 = Release|Win32
+ {3987E63D-CB96-42EB-BA88-A3AF3F640897}.Debug|x64.ActiveCfg = Debug|x64
+ {3987E63D-CB96-42EB-BA88-A3AF3F640897}.Debug|x64.Build.0 = Debug|x64
+ {3987E63D-CB96-42EB-BA88-A3AF3F640897}.Debug|x86.ActiveCfg = Debug|Win32
+ {3987E63D-CB96-42EB-BA88-A3AF3F640897}.Debug|x86.Build.0 = Debug|Win32
+ {3987E63D-CB96-42EB-BA88-A3AF3F640897}.Release|x64.ActiveCfg = Release|x64
+ {3987E63D-CB96-42EB-BA88-A3AF3F640897}.Release|x64.Build.0 = Release|x64
+ {3987E63D-CB96-42EB-BA88-A3AF3F640897}.Release|x86.ActiveCfg = Release|Win32
+ {3987E63D-CB96-42EB-BA88-A3AF3F640897}.Release|x86.Build.0 = Release|Win32
+ {F1112477-5C76-4351-A4B4-7E6266274F23}.Debug|x64.ActiveCfg = Debug|x64
+ {F1112477-5C76-4351-A4B4-7E6266274F23}.Debug|x64.Build.0 = Debug|x64
+ {F1112477-5C76-4351-A4B4-7E6266274F23}.Debug|x86.ActiveCfg = Debug|Win32
+ {F1112477-5C76-4351-A4B4-7E6266274F23}.Debug|x86.Build.0 = Debug|Win32
+ {F1112477-5C76-4351-A4B4-7E6266274F23}.Release|x64.ActiveCfg = Release|x64
+ {F1112477-5C76-4351-A4B4-7E6266274F23}.Release|x64.Build.0 = Release|x64
+ {F1112477-5C76-4351-A4B4-7E6266274F23}.Release|x86.ActiveCfg = Release|Win32
+ {F1112477-5C76-4351-A4B4-7E6266274F23}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C3DE9B06-003A-4B5A-9C70-43C8AA8909BF}
+ EndGlobalSection
+EndGlobal
diff --git a/msbuild/c2.vcxproj b/msbuild/c2.vcxproj
new file mode 100644
index 0000000..ca74e7e
--- /dev/null
+++ b/msbuild/c2.vcxproj
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>17.0</VCProjectVersion>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{2eb76df5-7119-4cb6-86f0-87eb929be79c}</ProjectGuid>
+ <RootNamespace>c2</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd;$(SolutionDir)..\</AdditionalIncludeDirectories>
+ <LanguageStandard>stdcpp20</LanguageStandard>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd;$(SolutionDir)..\</AdditionalIncludeDirectories>
+ <LanguageStandard>stdcpp20</LanguageStandard>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;_DEBUG;DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd;$(SolutionDir)..\</AdditionalIncludeDirectories>
+ <LanguageStandard>stdcpp20</LanguageStandard>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd;$(SolutionDir)..\</AdditionalIncludeDirectories>
+ <LanguageStandard>stdcpp20</LanguageStandard>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\app.cpp" />
+ <ClCompile Include="..\asset.cpp" />
+ <ClCompile Include="..\c2.cpp" />
+ <ClCompile Include="..\maths.cpp" />
+ <ClCompile Include="..\pipeline.cpp" />
+ <ClCompile Include="..\ui.cpp" />
+ <ClCompile Include="..\video.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\app.hpp" />
+ <ClInclude Include="..\asset.hpp" />
+ <ClInclude Include="..\glad_vk.h" />
+ <ClInclude Include="..\maths.hpp" />
+ <ClInclude Include="..\ui.hpp" />
+ <ClInclude Include="..\video.hpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="qstd\qstd.vcxproj">
+ <Project>{1bb0efa0-f482-4d8c-adcc-946343d3fe02}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/c2.vcxproj.filters b/msbuild/c2.vcxproj.filters
new file mode 100644
index 0000000..0f942d6
--- /dev/null
+++ b/msbuild/c2.vcxproj.filters
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\app.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\asset.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\c2.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\maths.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\pipeline.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\ui.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\video.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\app.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\asset.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\glad_vk.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\maths.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\ui.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\video.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/cfg/cfg.vcxproj b/msbuild/cfg/cfg.vcxproj
new file mode 100644
index 0000000..b212b78
--- /dev/null
+++ b/msbuild/cfg/cfg.vcxproj
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>17.0</VCProjectVersion>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{5b5d6195-0efc-4dad-80f5-db69530f9e33}</ProjectGuid>
+ <RootNamespace>cfg</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\cfg\cfgparse.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\cfg\cfgparse.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/cfg/cfg.vcxproj.filters b/msbuild/cfg/cfg.vcxproj.filters
new file mode 100644
index 0000000..63a4192
--- /dev/null
+++ b/msbuild/cfg/cfg.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\cfg\cfgparse.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\cfg\cfgparse.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/convtexture/convtexture.vcxproj b/msbuild/convtexture/convtexture.vcxproj
new file mode 100644
index 0000000..3fc78c3
--- /dev/null
+++ b/msbuild/convtexture/convtexture.vcxproj
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>17.0</VCProjectVersion>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{21c708d3-6f35-4c2b-a53e-9e06d8220218}</ProjectGuid>
+ <RootNamespace>convtexture</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;DEBUGWIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;DEBUG_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\convtexture.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\qstd\qstd.vcxproj">
+ <Project>{1bb0efa0-f482-4d8c-adcc-946343d3fe02}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/convtexture/convtexture.vcxproj.filters b/msbuild/convtexture/convtexture.vcxproj.filters
new file mode 100644
index 0000000..869b545
--- /dev/null
+++ b/msbuild/convtexture/convtexture.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\convtexture.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/pack/pack.vcxproj b/msbuild/pack/pack.vcxproj
new file mode 100644
index 0000000..bb0c415
--- /dev/null
+++ b/msbuild/pack/pack.vcxproj
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>17.0</VCProjectVersion>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{f1112477-5c76-4351-a4b4-7e6266274f23}</ProjectGuid>
+ <RootNamespace>pack</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <CustomBuild Include="thing.txt">
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\data\22.tex;$(SolutionDir)..\data\kita.tex;$(SolutionDir)..\data\triangle.csh;$(SolutionDir)..\data\ui.csh;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)..\data\22.tex;$(SolutionDir)..\data\kita.tex;$(SolutionDir)..\data\triangle.csh;$(SolutionDir)..\data\ui.csh;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)..\data\22.tex;$(SolutionDir)..\data\kita.tex;$(SolutionDir)..\data\triangle.csh;$(SolutionDir)..\data\ui.csh;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)..\data\22.tex;$(SolutionDir)..\data\kita.tex;$(SolutionDir)..\data\triangle.csh;$(SolutionDir)..\data\ui.csh;%(AdditionalInputs)</AdditionalInputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\packer\$(Configuration)\$(Platform)\packer.exe $(SolutionDir)..\pack $(SolutionDir)..\data 22.tex kita.tex triangle.csh ui.csh
+</Command>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\packer\$(Configuration)\$(Platform)\packer.exe $(SolutionDir)..\pack $(SolutionDir)..\data 22.tex kita.tex triangle.csh ui.csh</Message>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\pack</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\packer\$(Configuration)\$(Platform)\packer.exe $(SolutionDir)..\pack $(SolutionDir)..\data 22.tex kita.tex triangle.csh ui.csh
+</Command>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\packer\$(Configuration)\$(Platform)\packer.exe $(SolutionDir)..\pack $(SolutionDir)..\data 22.tex kita.tex triangle.csh ui.csh</Message>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)..\pack</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\packer\$(Configuration)\$(Platform)\packer.exe $(SolutionDir)..\pack $(SolutionDir)..\data 22.tex kita.tex triangle.csh ui.csh
+</Command>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\packer\$(Configuration)\$(Platform)\packer.exe $(SolutionDir)..\pack $(SolutionDir)..\data 22.tex kita.tex triangle.csh ui.csh</Message>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)..\pack</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\packer\$(Configuration)\$(Platform)\packer.exe $(SolutionDir)..\pack $(SolutionDir)..\data 22.tex kita.tex triangle.csh ui.csh
+</Command>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\packer\$(Configuration)\$(Platform)\packer.exe $(SolutionDir)..\pack $(SolutionDir)..\data 22.tex kita.tex triangle.csh ui.csh</Message>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)..\pack</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\packer\packer.vcxproj">
+ <Project>{3987e63d-cb96-42eb-ba88-a3af3f640897}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/pack/pack.vcxproj.filters b/msbuild/pack/pack.vcxproj.filters
new file mode 100644
index 0000000..9ffa948
--- /dev/null
+++ b/msbuild/pack/pack.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="thing.txt">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/pack/thing.txt b/msbuild/pack/thing.txt
new file mode 100644
index 0000000..76fb4d4
--- /dev/null
+++ b/msbuild/pack/thing.txt
@@ -0,0 +1 @@
+hello im a cute little file \ No newline at end of file
diff --git a/msbuild/packer/packer.vcxproj b/msbuild/packer/packer.vcxproj
new file mode 100644
index 0000000..22e86b1
--- /dev/null
+++ b/msbuild/packer/packer.vcxproj
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>17.0</VCProjectVersion>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{3987e63d-cb96-42eb-ba88-a3af3f640897}</ProjectGuid>
+ <RootNamespace>packer</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;DEBUG;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\packer.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\qstd\qstd.vcxproj">
+ <Project>{1bb0efa0-f482-4d8c-adcc-946343d3fe02}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/packer/packer.vcxproj.filters b/msbuild/packer/packer.vcxproj.filters
new file mode 100644
index 0000000..f0cfd0c
--- /dev/null
+++ b/msbuild/packer/packer.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\packer.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/qstd/qstd.vcxproj b/msbuild/qstd/qstd.vcxproj
new file mode 100644
index 0000000..0d9209e
--- /dev/null
+++ b/msbuild/qstd/qstd.vcxproj
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>17.0</VCProjectVersion>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{1bb0efa0-f482-4d8c-adcc-946343d3fe02}</ProjectGuid>
+ <RootNamespace>qstd</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;WIN32;DEBUG;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;_DEBUG;DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\qstd\memory.c" />
+ <ClCompile Include="..\..\qstd\pack.c" />
+ <ClCompile Include="..\..\qstd\plat.c" />
+ <ClCompile Include="..\..\qstd\str.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\qstd\memory.h" />
+ <ClInclude Include="..\..\qstd\pack.h" />
+ <ClInclude Include="..\..\qstd\plat.h" />
+ <ClInclude Include="..\..\qstd\str.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/qstd/qstd.vcxproj.filters b/msbuild/qstd/qstd.vcxproj.filters
new file mode 100644
index 0000000..5e4bacd
--- /dev/null
+++ b/msbuild/qstd/qstd.vcxproj.filters
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\qstd\memory.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\qstd\pack.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\qstd\plat.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\qstd\str.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\qstd\memory.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\qstd\pack.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\qstd\plat.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\qstd\str.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/sc/sc.vcxproj b/msbuild/sc/sc.vcxproj
new file mode 100644
index 0000000..e0a2c50
--- /dev/null
+++ b/msbuild/sc/sc.vcxproj
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>17.0</VCProjectVersion>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{86c58ec1-51ed-4ec6-85a4-2fdf153dd92a}</ProjectGuid>
+ <RootNamespace>sc</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)bin\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;DEBUG;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd;$(SolutionDir)..\cfg;$(SolutionDir)..\;$(SolutionDir)..\sc\glslang</AdditionalIncludeDirectories>
+ <LanguageStandard>stdcpp20</LanguageStandard>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\;$(SolutionDir)bin\cfg\$(Configuration)\$(Platform)\;$(SolutionDir)..\sc\glslang\build\SPIRV\$(Configuration);$(SolutionDir)..\sc\glslang\build\glslang\OSDependent\Windows\$(Configuration);$(SolutionDir)..\sc\glslang\build\glslang\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\link\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\opt\$(Configuration)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;cfg.lib;glslangd.lib;glslang-default-resource-limitsd.lib;SPIRVd.lib;MachineIndependentd.lib;SPVRemapperd.lib;OSDependentd.lib;GenericCodeGend.lib;SPIRV-Tools-linkd.lib;SPIRV-Tools-optd.lib;SPIRV-Toolsd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd;$(SolutionDir)..\cfg;$(SolutionDir)..\;$(SolutionDir)..\sc\glslang</AdditionalIncludeDirectories>
+ <LanguageStandard>stdcpp20</LanguageStandard>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\;$(SolutionDir)bin\cfg\$(Configuration)\$(Platform)\;$(SolutionDir)..\sc\glslang\build\SPIRV\$(Configuration);$(SolutionDir)..\sc\glslang\build\glslang\OSDependent\Windows\$(Configuration);$(SolutionDir)..\sc\glslang\build\glslang\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\link\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\opt\$(Configuration)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;cfg.lib;glslang.lib;glslang-default-resource-limits.lib;SPIRV.lib;MachineIndependent.lib;SPVRemapper.lib;OSDependent.lib;GenericCodeGen.lib;SPIRV-Tools-link.lib;SPIRV-Tools-opt.lib;SPIRV-Tools.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;DEBUG;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd;$(SolutionDir)..\cfg;$(SolutionDir)..\;$(SolutionDir)..\sc\glslang</AdditionalIncludeDirectories>
+ <LanguageStandard>stdcpp20</LanguageStandard>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\;$(SolutionDir)bin\cfg\$(Configuration)\$(Platform)\;$(SolutionDir)..\sc\glslang\build\SPIRV\$(Configuration);$(SolutionDir)..\sc\glslang\build\glslang\OSDependent\Windows\$(Configuration);$(SolutionDir)..\sc\glslang\build\glslang\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\link\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\opt\$(Configuration)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;cfg.lib;glslangd.lib;glslang-default-resource-limitsd.lib;SPIRVd.lib;MachineIndependentd.lib;SPVRemapperd.lib;OSDependentd.lib;GenericCodeGend.lib;SPIRV-Tools-linkd.lib;SPIRV-Tools-optd.lib;SPIRV-Toolsd.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>plat_win;plat_x86;allocation_default_alignment=8;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\qstd;$(SolutionDir)..\cfg;$(SolutionDir)..\;$(SolutionDir)..\sc\glslang</AdditionalIncludeDirectories>
+ <LanguageStandard>stdcpp20</LanguageStandard>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)bin\qstd\$(Configuration)\$(Platform)\;$(SolutionDir)bin\cfg\$(Configuration)\$(Platform)\;$(SolutionDir)..\sc\glslang\build\SPIRV\$(Configuration);$(SolutionDir)..\sc\glslang\build\glslang\OSDependent\Windows\$(Configuration);$(SolutionDir)..\sc\glslang\build\glslang\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\link\$(Configuration);$(SolutionDir)..\sc\glslang\build\External\spirv-tools\source\opt\$(Configuration)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>qstd.lib;cfg.lib;glslang.lib;glslang-default-resource-limits.lib;SPIRV.lib;MachineIndependent.lib;SPVRemapper.lib;OSDependent.lib;GenericCodeGen.lib;SPIRV-Tools-link.lib;SPIRV-Tools-opt.lib;SPIRV-Tools.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\sc\includer.cpp" />
+ <ClCompile Include="..\..\sc\sc.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\sc\includer.hpp" />
+ <ClInclude Include="..\..\sc\sh_enums.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\cfg\cfg.vcxproj">
+ <Project>{5b5d6195-0efc-4dad-80f5-db69530f9e33}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\qstd\qstd.vcxproj">
+ <Project>{1bb0efa0-f482-4d8c-adcc-946343d3fe02}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/sc/sc.vcxproj.filters b/msbuild/sc/sc.vcxproj.filters
new file mode 100644
index 0000000..1bf735b
--- /dev/null
+++ b/msbuild/sc/sc.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\sc\includer.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sc\sc.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\sc\includer.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\sc\sh_enums.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/shaders/shaders.vcxproj b/msbuild/shaders/shaders.vcxproj
new file mode 100644
index 0000000..5b9e602
--- /dev/null
+++ b/msbuild/shaders/shaders.vcxproj
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>17.0</VCProjectVersion>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{c3ef6e38-d98f-4341-8373-571253f405bd}</ProjectGuid>
+ <RootNamespace>shaders</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)..\data\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)..\data\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)..\data\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)..\data\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ <CustomBuild>
+ <Command>$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Message>$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ <Outputs>$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ </CustomBuild>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ <CustomBuild>
+ <Command>$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Message>$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ <Outputs>$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ </CustomBuild>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ <CustomBuild>
+ <Command>$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Message>$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ <Outputs>$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ </CustomBuild>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ <CustomBuild>
+ <Command>$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Message>$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ <Outputs>$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ </CustomBuild>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\intermediate\triangle.glsl">
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ </CustomBuild>
+ <CustomBuild Include="..\..\intermediate\ui.glsl">
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Command>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\sc\$(Configuration)\$(Platform)\sc.exe %(FullPath) $(SolutionDir)..\data\%(Filename).csh</Message>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)..\data\%(Filename).csh</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\sc\sc.vcxproj">
+ <Project>{86c58ec1-51ed-4ec6-85a4-2fdf153dd92a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/shaders/shaders.vcxproj.filters b/msbuild/shaders/shaders.vcxproj.filters
new file mode 100644
index 0000000..26396ea
--- /dev/null
+++ b/msbuild/shaders/shaders.vcxproj.filters
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\intermediate\triangle.glsl">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="..\..\intermediate\ui.glsl">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/textures/textures.vcxproj b/msbuild/textures/textures.vcxproj
new file mode 100644
index 0000000..72b1e1b
--- /dev/null
+++ b/msbuild/textures/textures.vcxproj
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>17.0</VCProjectVersion>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectGuid>{0e0e5a6a-51c0-494d-8816-932422ade2ba}</ProjectGuid>
+ <RootNamespace>textures</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Utility</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v143</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)..\data\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)..\data\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)..\data\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)..\data\</OutDir>
+ <IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ <CustomBuild>
+ <Command>$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex</Command>
+ <Message>$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex</Message>
+ <Outputs>$(SolutionDir)..\data\%(Filename).tex</Outputs>
+ </CustomBuild>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ <CustomBuild>
+ <Command>$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex</Command>
+ <Message>$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex</Message>
+ <Outputs>$(SolutionDir)..\data\%(Filename).tex</Outputs>
+ </CustomBuild>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ <CustomBuild>
+ <Command>$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex</Command>
+ <Message>$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex</Message>
+ <Outputs>$(SolutionDir)..\data\%(Filename).tex</Outputs>
+ </CustomBuild>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ <CustomBuild>
+ <Command>$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex</Command>
+ <Message>$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex</Message>
+ <Outputs>$(SolutionDir)..\data\%(Filename).tex</Outputs>
+ </CustomBuild>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\convtexture\convtexture.vcxproj">
+ <Project>{21c708d3-6f35-4c2b-a53e-9e06d8220218}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\intermediate\22.bmp">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex bc1</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex bc1</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex bc1</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex bc1</Command>
+ </CustomBuild>
+ <CustomBuild Include="..\..\intermediate\kita.bmp">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex bc1</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex bc1</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex bc1</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\convtexture\$(Configuration)\$(Platform)\convtexture.exe %(FullPath) $(SolutionDir)..\data\%(Filename).tex bc1</Command>
+ </CustomBuild>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/msbuild/textures/textures.vcxproj.filters b/msbuild/textures/textures.vcxproj.filters
new file mode 100644
index 0000000..4d9d1c3
--- /dev/null
+++ b/msbuild/textures/textures.vcxproj.filters
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\intermediate\22.bmp">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="..\..\intermediate\kita.bmp">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/packer.c b/packer.c
index 79acd2e..283c11f 100644
--- a/packer.c
+++ b/packer.c
@@ -49,7 +49,7 @@ int main(int argc, const char** argv) {
print_err("Hash table error.\n");
return 5;
}
- strcpy(e->name, argv[i + 3] + strlen(workingdir) + strlen(dsep));
+ strcpy(e->name, argv[i + 3]);
}
fwrite(magic, 1, 4, outfile);
fwrite(&pack->file_count, 1, 4, outfile);
diff --git a/qstd/plat.c b/qstd/plat.c
index 61385ff..7f07b96 100644
--- a/qstd/plat.c
+++ b/qstd/plat.c
@@ -84,3 +84,73 @@ void pbreak(int code) {
}
#endif
+
+#ifdef plat_win
+
+#define _POSIX_SOURCE
+#define _GNU_SOURCE
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#include <windows.h>
+#include <stdio.h>
+#include <io.h>
+
+int imp_assert(
+ int val,
+ const char* expr,
+ const char* file,
+ int line
+) {
+ if (!val) {
+ print_err(
+ "%d:%s: Assertion failed: %s.\n",
+ line,
+ file,
+ expr
+ );
+ pbreak(420);
+ return 0;
+ }
+ return 1;
+}
+
+void print(const char* fmt, ...) {
+ char buf[1024];
+ va_list args;
+ va_start(args, fmt);
+ vsprintf(buf, fmt, args);
+ va_end(args);
+ OutputDebugStringA(buf);
+}
+
+void print_err(const char* fmt, ...) {
+ char buf[1024];
+ va_list args;
+ va_start(args, fmt);
+ vsprintf(buf, fmt, args);
+ va_end(args);
+ OutputDebugStringA(buf);
+}
+
+void print_war(const char* fmt, ...) {
+ char buf[1024];
+ va_list args;
+ va_start(args, fmt);
+ vsprintf(buf, fmt, args);
+ va_end(args);
+ OutputDebugStringA(buf);
+}
+
+void pbreak(int code) {
+#if defined(DEBUG) && defined(plat_x86)
+ __debugbreak();
+ (void)code;
+#else
+ exit(code);
+#endif
+}
+
+
+#endif \ No newline at end of file
diff --git a/qstd/str.c b/qstd/str.c
index 2c74d4b..5dd97c4 100644
--- a/qstd/str.c
+++ b/qstd/str.c
@@ -39,9 +39,9 @@ int string_equal(const char* a, const char* b) {
int string_copy(char* dst, const char* src) {
int i;
- for (i = 0; *src; src++, dst++, i++) {
+ for (i = 0; *src; src++, dst++, i++)
*dst = *src;
- }
+ *dst = 0;
return i;
}
diff --git a/sc/sc.cpp b/sc/sc.cpp
index 0f61fdf..3c39b0c 100644
--- a/sc/sc.cpp
+++ b/sc/sc.cpp
@@ -62,10 +62,7 @@ bool rf(const char* n, char*& buf, size_t& size) {
rewind(f);
buf = new char[size + 1];
buf[size] = 0;
- if (size != fread(buf, 1, size, f)) {
- delete[] buf;
- return false;
- }
+ buf[fread(buf, 1, size, f)] = 0;
return true;
}
@@ -708,6 +705,7 @@ int main(int argc, const char** argv) {
Desc desc;
if (argc < 3) {
print_err("Usage: %s infile outfile.\n", argv[0]);
+ return 1;
}
if (!rf(argv[1], src, src_size)) {
print_err("Failed to read %s\n", argv[1]);
diff --git a/video.cpp b/video.cpp
index e5a42dc..6677bbc 100644
--- a/video.cpp
+++ b/video.cpp
@@ -24,10 +24,15 @@ extern "C" {
#include <tuple>
#include <unordered_map>
-#define VK_USE_PLATFORM_XLIB_KHR
-#define GLAD_VULKAN_IMPLEMENTATION
#include "glad_vk.h"
+#ifdef min /* use std::min and max instead */
+#undef min
+#endif
+#ifdef max
+#undef max
+#endif
+
const char* device_exts[] = {
VK_KHR_SWAPCHAIN_EXTENSION_NAME,
VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME
@@ -211,7 +216,7 @@ VkImageLayout state_to_image_layout(Resource_State s) {
return VK_IMAGE_LAYOUT_UNDEFINED;
}
-static void* vk_alloc(
+static void* __stdcall vk_alloc(
void* uptr,
size_t size,
size_t alignment,
@@ -233,15 +238,16 @@ static void* vk_alloc(
return r;
}
-static void vk_free(
+static void __stdcall vk_free(
void* uptr,
void* ptr
) {
Device* d = (Device*)uptr;
+ if (!ptr) return;
heap_free(d->heap, ptr);
}
-static void* vk_realloc(
+static void* __stdcall vk_realloc(
void* uptr,
void* old,
size_t size,
@@ -342,6 +348,7 @@ struct Swapchain {
VkSurfaceFormatKHR format;
VkExtent2D size;
VkPresentModeKHR mode;
+ VkSemaphore image_avail;
int image_count;
void init(const App& app, Device_Vk* dev);
@@ -1527,6 +1534,16 @@ void Swapchain::initr(const App& app, Device_Vk* dev) {
pbreak(r);
}
}
+ {
+ VkResult r;
+ VkSemaphoreCreateInfo si{};
+ si.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
+ r = vkCreateSemaphore(dev->dev, &si, &dev->ac, &image_avail);
+ if (r != VK_SUCCESS) {
+ print_err("Failed to create a semaphore.\n");
+ pbreak(r);
+ }
+ }
get_images(dev);
}
@@ -1595,6 +1612,7 @@ void Swapchain::destroy(Device_Vk* dev) {
int i;
for (i = 0; i < image_count; i++)
dev->destroy_texture(textures[i]);
+ vkDestroySemaphore(dev->dev, image_avail, &dev->ac);
vkDestroySwapchainKHR(dev->dev, swapchain, &dev->ac);
heap_free(dev->heap, textures);
textures = 0;
@@ -1636,7 +1654,7 @@ void Device::begin_frame() {
dev->dev,
dev->swapchain.swapchain,
UINT64_MAX,
- dev->current_ctx->semaphore,
+ dev->swapchain.image_avail,
VK_NULL_HANDLE,
&dev->backbuffer_index
);
@@ -1675,7 +1693,7 @@ void Device::present() {
);
si.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
si.waitSemaphoreCount = 1;
- si.pWaitSemaphores = &ctx->semaphore;
+ si.pWaitSemaphores = &dev->swapchain.image_avail;
si.pWaitDstStageMask = &stage;
si.signalSemaphoreCount = 1;
si.pSignalSemaphores = &ctx->semaphore;