ddt_ex

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | LICENSE

commit 74715034a20b9bcec737ddf52a7d1e0c538f0960
Author: Samdal <samdal@protonmail.com>
Date:   Wed,  7 May 2025 17:40:27 +0200

squashed from gs_project_example

Diffstat:
A.gitattributes | 2++
A.github/workflows/build_linux.yml | 23+++++++++++++++++++++++
A.gitignore | 7+++++++
A.gitmodules | 3+++
ALICENSE | 29+++++++++++++++++++++++++++++
AREADME.md | 93+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aproc/html5/emcc.sh | 33+++++++++++++++++++++++++++++++++
Aproc/linux/gcc.sh | 27+++++++++++++++++++++++++++
Aproc/linux/gcc_dbg.sh | 28++++++++++++++++++++++++++++
Aproc/linux/gcc_rdbg.sh | 28++++++++++++++++++++++++++++
Aproc/linux/gcc_rel.sh | 28++++++++++++++++++++++++++++
Aproc/osx/gcc.sh | 39+++++++++++++++++++++++++++++++++++++++
Aproc/osx/gcc_dbg.sh | 40++++++++++++++++++++++++++++++++++++++++
Aproc/osx/gcc_rdbg.sh | 40++++++++++++++++++++++++++++++++++++++++
Aproc/osx/gcc_rel.sh | 40++++++++++++++++++++++++++++++++++++++++
Aproc/scons/SConstruct | 155+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aproc/sublime_text/gs_project.sublime-project | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aproc/sublime_text/gs_project.sublime-workspace | 1112+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aproc/win/cl.bat | 35+++++++++++++++++++++++++++++++++++
Aproc/win/mingw.sh | 40++++++++++++++++++++++++++++++++++++++++
Aproc/win/mingw_cross_platform.sh | 39+++++++++++++++++++++++++++++++++++++++
Aproc/win/mingw_dbg.sh | 41+++++++++++++++++++++++++++++++++++++++++
Aproc/win/mingw_rdbg.sh | 41+++++++++++++++++++++++++++++++++++++++++
Aproc/win/mingw_rel.sh | 41+++++++++++++++++++++++++++++++++++++++++
Asource/main.c | 78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Athird_party/include/gs | 1+
26 files changed, 2106 insertions(+), 0 deletions(-)

diff --git a/.gitattributes b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.github/workflows/build_linux.yml b/.github/workflows/build_linux.yml @@ -0,0 +1,23 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the main branch + push: + branches: [ main ] + pull_request: + branches: [ main ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # Build for ubuntu latest + build_ubuntu: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@main + - name: build + run: bash ./proc/linux/gcc.sh diff --git a/.gitignore b/.gitignore @@ -0,0 +1,7 @@ + +bin/vc140.pdb +bin/App.exe +bin/App.ilk +bin/App.pdb +bin/main.obj +bin/App diff --git a/.gitmodules b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "third_party/include/gs"] + path = third_party/include/gs + url = https://github.com/MrFrenik/gunslinger diff --git a/LICENSE b/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2021, John Jackson +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md @@ -0,0 +1,93 @@ +# Gunslinger Project Template + +This is a minimum and premade configuration that you need in order to get started with gunslinger. It provides all the necessary dependencies and the bash/batch scripts for compiling it on Windows, Mac and Linux. + +You can also check the main **Gunslinger** repository here, where you'll find documentation on how to get started: +[Gunlinger repository](https://github.com/MrFrenik/gunslinger) + +And you can also find a complete list of examples for you to learn from and test on your machine here: +[Gunslinger examples](https://github.com/MrFrenik/gs_examples) + +## Cloning instructions: +- Use the following command to clone the repo and init the gunslinger submodule +```bash +git clone --recursive https://github.com/MrFrenik/gs_project_template +``` + +## Updating GS instructions (updates gunslinger submodule and rebases to main branch): +```bash +git submodule update --remote --rebase --recursive +``` + +## Build Instructions: + +### Windows +## MSVC: +- From start menu, open `{x86|x64} Native Tools for {VS Version Here}` +- cd to `root dir` where you downloaded project template +- To compile the project, run: +```bash +proc\win\cl.bat +``` +- To execute the program, run: +```bash +bin\App.exe +``` +### MINGW: +- From `root dir`, open `git bash` +- To compile, run: +```bash +bash ./proc/win/mingw.sh +``` +- To execute the program, run: +```bash +./bin/App.exe +``` + +### Linux + +## Before Compiling: +- Make sure the following development libraries are installed: +```bash +sudo apt install git gcc mesa-common-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev +``` +- For Mesa and OpenGL, need to export the following: +```bash +export MESA_GL_VERSION_OVERRIDE=3.3 +``` +- Credit to https://github.com/Samdal + +## GCC: +- Open terminal +- cd to `root dir` where you downloaded project template +- To compile the project, run: +```bash +bash ./proc/linux/gcc.sh +``` +- To execute the program, run: +```bash +./bin/App +``` + +### OSX +## GCC: +- Open terminal +- cd to `root dir` where you downloaded project template +- To compile the project, run: +```bash +bash ./proc/osx/gcc.sh +``` +- To execute the program, run: +```bash +./bin/App +``` + +### HTML5 +## Emscripten: +- Open terminal +- cd to `root dir` where you downloaded project template +- To compile the project, run: +```bash +bash ./proc/osx/emcc.sh +``` +- This will generate the appropriate .html, .js, and .wsm files to load in a browser. diff --git a/proc/html5/emcc.sh b/proc/html5/emcc.sh @@ -0,0 +1,33 @@ +#!bin/sh + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -w -s WASM=1 -s USE_WEBGL2=1 -s ASYNCIFY=1 -O1 +) + +# Include directories +inc=( + -I ../third_party/include/ # Gunslinger includes +) + +# Source files +src=( + ../source/*.c +) + +libs=( +) + +# Build +emcc ${inc[*]} ${src[*]} ${flags[*]} -o $proj_name.html + +cd .. + + + diff --git a/proc/linux/gcc.sh b/proc/linux/gcc.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=gnu99 -w -ldl -lGL -lX11 -pthread -lXi +) + +# Include directories +inc=( + -I ../third_party/include/ +) + +# Source files +src=( + ../source/main.c +) + +# Build +gcc -O3 ${inc[*]} ${src[*]} ${flags[*]} -lm -o ${proj_name} + +cd .. diff --git a/proc/linux/gcc_dbg.sh b/proc/linux/gcc_dbg.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=gnu99 -w -ldl -lGL -lX11 -pthread -lXi +) + +# Include directories +inc=( + -I ../third_party/include/ +) + +# Source files +src=( + ../source/main.c +) + +# Build +echo gcc -O0 ${inc[*]} ${src[*]} ${flags[*]} -lm -o ${proj_name} +gcc -O3 ${inc[*]} ${src[*]} ${flags[*]} -lm -o ${proj_name} + +cd .. diff --git a/proc/linux/gcc_rdbg.sh b/proc/linux/gcc_rdbg.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=gnu99 -w -ldl -lGL -lX11 -pthread -lXi +) + +# Include directories +inc=( + -I ../third_party/include/ +) + +# Source files +src=( + ../source/main.c +) + +# Build +echo gcc -O1 ${inc[*]} ${src[*]} ${flags[*]} -lm -o ${proj_name} +gcc -O3 ${inc[*]} ${src[*]} ${flags[*]} -lm -o ${proj_name} + +cd .. diff --git a/proc/linux/gcc_rel.sh b/proc/linux/gcc_rel.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=gnu99 -w -ldl -lGL -lX11 -pthread -lXi +) + +# Include directories +inc=( + -I ../third_party/include/ +) + +# Source files +src=( + ../source/main.c +) + +# Build +echo gcc -O3 ${inc[*]} ${src[*]} ${flags[*]} -lm -o ${proj_name} +gcc -O3 ${inc[*]} ${src[*]} ${flags[*]} -lm -o ${proj_name} + +cd .. diff --git a/proc/osx/gcc.sh b/proc/osx/gcc.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=c99 -x objective-c -O0 -w +) + +# Include directories +inc=( + -I ../third_party/include/ +) + +# Source files +src=( + ../source/main.c +) + +fworks=( + -framework OpenGL + -framework CoreFoundation + -framework CoreVideo + -framework IOKit + -framework Cocoa + -framework Carbon +) + +# Build +gcc ${flags[*]} ${fworks[*]} ${inc[*]} ${src[*]} -o ${proj_name} + +cd .. + + + diff --git a/proc/osx/gcc_dbg.sh b/proc/osx/gcc_dbg.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=c99 -x objective-c -O0 -w +) + +# Include directories +inc=( + -I ../third_party/include/ +) + +# Source files +src=( + ../source/main.c +) + +fworks=( + -framework OpenGL + -framework CoreFoundation + -framework CoreVideo + -framework IOKit + -framework Cocoa + -framework Carbon +) + +# Build +echo gcc ${flags[*]} ${fworks[*]} ${inc[*]} ${src[*]} -o ${proj_name} +gcc ${flags[*]} ${fworks[*]} ${inc[*]} ${src[*]} -o ${proj_name} + +cd .. + + + diff --git a/proc/osx/gcc_rdbg.sh b/proc/osx/gcc_rdbg.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=c99 -x objective-c -O1 -w +) + +# Include directories +inc=( + -I ../third_party/include/ +) + +# Source files +src=( + ../source/main.c +) + +fworks=( + -framework OpenGL + -framework CoreFoundation + -framework CoreVideo + -framework IOKit + -framework Cocoa + -framework Carbon +) + +# Build +echo gcc ${flags[*]} ${fworks[*]} ${inc[*]} ${src[*]} -o ${proj_name} +gcc ${flags[*]} ${fworks[*]} ${inc[*]} ${src[*]} -o ${proj_name} + +cd .. + + + diff --git a/proc/osx/gcc_rel.sh b/proc/osx/gcc_rel.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=c99 -x objective-c -O3 -w +) + +# Include directories +inc=( + -I ../third_party/include/ +) + +# Source files +src=( + ../source/main.c +) + +fworks=( + -framework OpenGL + -framework CoreFoundation + -framework CoreVideo + -framework IOKit + -framework Cocoa + -framework Carbon +) + +# Build +echo gcc ${flags[*]} ${fworks[*]} ${inc[*]} ${src[*]} -o ${proj_name} +gcc ${flags[*]} ${fworks[*]} ${inc[*]} ${src[*]} -o ${proj_name} + +cd .. + + + diff --git a/proc/scons/SConstruct b/proc/scons/SConstruct @@ -0,0 +1,155 @@ +#!/usr/bin/env python +import os +import sys + +# Try to detect the host platform automatically. +# This is used if no `platform` argument is passed +if sys.platform.startswith("linux"): + host_platform = "linux" +elif sys.platform == "darwin": + host_platform = "osx" +elif sys.platform == "win32" or sys.platform == "msys": + host_platform = "windows" +else: + raise ValueError( + "Could not detect platform automatically, please specify with " + "platform=<platform>" + ) + +env = Environment(ENV=os.environ) + +is64 = sys.maxsize > 2 ** 32 +if (env["TARGET_ARCH"] == "amd64" + or env["TARGET_ARCH"] == "emt64" + or env["TARGET_ARCH"] == "x86_64" + or env["TARGET_ARCH"] == "arm64-v8a"): + is64 = True + +opts = Variables([], ARGUMENTS) + +opts.Add( + EnumVariable( + "platform", + "Target platform", + host_platform, + allowed_values=("linux", "osx", "windows"), + ignorecase=2, + ) +) + +opts.Add( + EnumVariable( + "target", + "Compilation target", + "release", + allowed_values=("debug", "release"), + ignorecase=2, + ) +) +opts.Add( + PathVariable("target_path", "The path where the app will be installed", "../../bin/") +) + +opts.Add( + PathVariable("source_path", "The path where the source files lay", "../../source/") +) + +opts.Add( + PathVariable("include_path", "Where your includes are", "../../third_party/include") +) + +opts.Add( + PathVariable("target_name", "The name of the app", "App", PathVariable.PathAccept) +) + +opts.Add( + EnumVariable("bits", "Target platform bits", "64" if is64 else "32", ("32", "64")) +) + +opts.Add( + EnumVariable( + "OpenGL", + "If using OpenGL as backend", + "false", + allowed_values=("false", "true"), + ignorecase=2, + ) +) + +# Create bin folder if it does not exist, it will throw an error +# if any of the paths above is not an actual path. Since the project +# template does not actually have the bin folder, it won't work if you use +# the default unless you create it manually. +# +# feel free to remove this if you don't want the bin folder +os.system("mkdir -p ../../bin/") + +# update options +opts.Update(env) + + +if host_platform == "windows": + env.Append(ENV=os.environ) + if env["bits"] == "64": + env = Environment(TARGET_ARCH="amd64") + elif env["bits"] == "32": + env = Environment(TARGET_ARCH="x86") + opts.Update(env) + +env.Append(CPPPATH=env['include_path']) + +if env["platform"] == "linux": + if env["target"] == "debug": + env.Append(CCFLAGS=["-fPIC", "-g3", "-Og", "-std=gnu99"]) + else: + env.Append(CCFLAGS=["-fPIC", "-O3", "-std=gnu99"]) + env.Append(LINKFLAGS=["-s"]) + + env.Append(LINKFLAGS=["-ldl", "-lX11", "-lXi", "-lm", "-pthread"]) + if env["OpenGL"] == "true": + env.Append(CCFLAGS=["-lGL"]) + +elif env["platform"] == "osx": + if env["target"] == "debug": + env.Append(CCFLAGS=["-g", "-O2", "-arch", "x86_64", "-std=gnu99", "-objective-c"]) + else: + env.Append(CCFLAGS=["-g", "-O3", "-arch", "x86_64", "-std=gnu99", "-objective-c"]) + + env.Append(LINKFLAGS=["-arch", "x86_64", "-framework", "CoreFoundation", "-framework", + "CoreVide", "-framework", "IOKit", "-framework", "Cocoa", "-framework", "Carbon"]) + if env["OpenGL"] == "true": + env.Append(CCFLAGS=["-framework", "OpenGL"]) + +elif env["platform"] == "windows": + env.Append(CPPDEFINES=["WIN32", "_WIN32", "_WINDOWS", "_CRT_SECURE_NO_WARNINGS"]) + if env["target"] == "debug": + env.Append(CPPDEFINES=["_DEBUG"]) + env.Append(CCFLAGS=["-MD", "-std=gnu99"]) + env.Append(LINKFLAGS=["-DEBUG"]) + else: + env.Append(CPPDEFINES=["NDEBUG"]) + env.Append(CCFLAGS=["-O2", "-MD", "-std=gnu99"]) + + if env["bits"] == "32" and host_platform == "windows": + env.Append(LINKFLAGS=["kernel32.lib", "user32.lib", "shell32.lib", "vcruntime.lib", "msvcrt.lib", "gdi32.lib", "Advapi32.lib", "winmm.lib"]) + if env["OpenGL"] == "true": + env.Append(LINKFLAGS=["opengl32.lib"]) + else: + env.Append(LINKFLAGS=["-mwindows", "-lkernel32", "-luser32", "-lshell32", "-lgdi32", "-lAdvapi32", "-lwinmm"]) + if env["OpenGL"] == "true": + env.Append(LINKFLAGS=["-lopengl32"]) + + +# Source Files +sources = Glob(f"{env['source_path']}/*.c") +sources += Glob(f"{env['source_path']}/*/*.c") +sources += Glob(f"{env['source_path']}/*.cpp") +sources += Glob(f"{env['source_path']}/*/*.cpp") + +app = env.Program( + target=f"{env['target_path']}{env['platform']}/{env['target_name']}", source=sources +) +Default(app) + +# Generates help for the -h scons option. +Help(opts.GenerateHelpText(env)) diff --git a/proc/sublime_text/gs_project.sublime-project b/proc/sublime_text/gs_project.sublime-project @@ -0,0 +1,63 @@ +{ + "folders": + [ + { + "path": "./../../../gs_project_template" + } + ], + "build_systems": + [ + { + "name": "GS: Build Debug (GCC/MINGW)", + "osx": { + "cmd": ["echo Building... && cd $folder && bash ./proc/osx/gcc_dbg.sh"], + "shell": true + }, + "linux": { + "cmd": ["echo Building... && cd $folder && bash ./proc/linux/gcc_dbg.sh"], + "shell": true + }, + "windows": { + "cmd": ["echo Building... && cd $folder && bash ./proc/win/mingw_dbg.sh"], + "shell": true + } + }, + { + "name": "GS: Build Release (GCC/MINGW)", + "osx": { + "cmd": ["echo Building... && cd $folder && bash ./proc/osx/gcc_rel.sh"], + "shell": true + }, + "linux": { + "cmd": ["echo Building... && cd $folder && bash ./proc/linux/gcc_rel.sh"], + "shell": true + }, + "windows": { + "cmd": ["echo Building... && cd $folder && bash ./proc/win/mingw_rel.sh"], + "shell": true + } + }, + { + "name": "GS: Build Rel-Debug (GCC/MINGW)", + "osx": { + "cmd": ["echo Building... && cd $folder && bash ./proc/osx/gcc_rdbg.sh"], + "shell": true + }, + "linux": { + "cmd": ["echo Building... && cd $folder && bash ./proc/linux/gcc_rdbg.sh"], + "shell": true + }, + "windows": { + "cmd": ["echo Building... && cd $folder && bash ./proc/win/mingw_rdbg.sh"], + "shell": true + } + }, + { + "name": "GS: Run", + "osx": { + "cmd": ["cd $folder && ./bin/App"], + "shell": true + } + } + ] +} diff --git a/proc/sublime_text/gs_project.sublime-workspace b/proc/sublime_text/gs_project.sublime-workspace @@ -0,0 +1,1112 @@ +{ + "auto_complete": + { + "selected_items": + [ + [ + "gs_physics_stackal", + "gs_physics_stack_allocator_t" + ], + [ + "gs_Gfxtpipe", + "gs_gfxt_pipeline_t" + ], + [ + "gs_gfxtrawpip", + "gs_gfxt_raw_pipeline_func_desc_t" + ], + [ + "MOVEMEN", + "ANALOG_HAND_MOVEMENT_QUARTZ" + ], + [ + "MOVMENT", + "ANALOG_HAND_MOVEMENT_QUARTZ" + ], + [ + "GSGRPAH", + "GS_GRAPHICS_PRIMITIVE_TRIANGLES" + ], + [ + "GS_GRAPHICS_SHAD", + "GS_GRAPHICS_SHADER_STAGE_FRAGMENT" + ], + [ + "GS_SHAD", + "GS_SHADERPROGRAM_GEOMETRY" + ], + [ + "GS_SHADER", + "GS_SHADERPROGRAM_FRAGMENT" + ], + [ + "gsrsou", + "gs_resource_cache_get_ptr" + ], + [ + "gs_resour", + "gs_declare_resource_type" + ], + [ + "gs_face_cul", + "gs_face_culling_disabled" + ], + [ + "gs_window", + "gs_winding_order_ccw" + ], + [ + "openglimediated", + "__get_opengl_immediate_data" + ], + [ + "vertex_", + "vertex_3fv" + ], + [ + "gs_slothand", + "gs_slot_array_invalid_handle" + ], + [ + "glfwframebuffersi", + "glfw_frame_buffer_size" + ], + [ + "ENJONDI", + "ENJON_DIR" + ], + [ + "Roboto-Medium", + "Roboto-MediumItalic_14" + ], + [ + "format", + "texture_format" + ], + [ + "gs_asset_sub", + "gs_asset_subsystem_get_raw" + ], + [ + "render_te", + "gui_render_test" + ], + [ + "gs_component_data_ind", + "gs_component_data_index_pool_gs_rotation_component_system" + ], + [ + "gs_component_data_poollist", + "gs_component_data_pool_list" + ], + [ + "gs_component_datapoli", + "gs_component_data_pool_list" + ], + [ + "gs_componentdatast", + "gs_component_data_storage" + ], + [ + "gscomp", + "gs_component" + ], + [ + "gscomponentd", + "gs_component_data_storage" + ], + [ + "gscomponentdat", + "gs_component_data_storage_ptr" + ], + [ + "gs_componetndat", + "gs_component_data_storage_ptr" + ], + [ + "deseri", + "deserialized_texture" + ], + [ + "transform_c", + "transform_component_system_ctor" + ], + [ + "mat4_tra", + "__mat4_translate_impl" + ], + [ + "lexer_require", + "lexer_require_token_type" + ], + [ + "object_seri", + "object_serialize_pod_type" + ], + [ + "data_ch", + "data_chunk" + ], + [ + "data_c", + "data_chunk" + ], + [ + "if", + "ifmain\tif __name__ == '__main__'" + ], + [ + "GetPRoxy", + "GetProxyData" + ], + [ + "HealthCompoe", + "HealthComponentProxy" + ], + [ + "Healthcompr", + "HealthComponentProxy" + ], + [ + "Healthc", + "HealthComponentProxy" + ], + [ + "mRegenra", + "mRegenRate" + ], + [ + "Haelthcom", + "HealthComponentProxy" + ], + [ + "mregenra", + "mRegenRate_InstanceData" + ], + [ + "mregenrate", + "mRegenRate" + ], + [ + "mRegenr", + "mRegenRate" + ], + [ + "attribute", + "attributes" + ], + [ + "mPosion", + "mPosition_InstanceData" + ], + [ + "mHelath", + "mHealth_InstanceData" + ], + [ + "HealthCompon", + "HealthComponent_InstanceData" + ], + [ + "mEntityInst", + "mEntityID_InstanceData" + ], + [ + "Healthcom", + "HealthComponent" + ], + [ + "Healthcompo", + "HealthComponent_InstanceData" + ], + [ + "uno", + "unordered_map\tstandard header (since c++11)" + ], + [ + "tfi", + "tfidfVectors" + ], + [ + "tf", + "tfidfVectors" + ], + [ + "orin", + "originalDocs" + ], + [ + "WFCLAS", + "WF_CLASS_NAME_WatchFace" + ] + ] + }, + "buffers": + [ + ], + "build_system": "", + "build_system_choices": + [ + [ + [ + [ + "Packages/C++ & C Single File Builder - Minghang Yang/C Builder-Minghang Yang.sublime-build", + "" + ], + [ + "Packages/C++ & C Single File Builder - Minghang Yang/C Builder-Minghang Yang.sublime-build", + "Run" + ], + [ + "Packages/C++ & C Single File Builder - Minghang Yang/C Builder-Minghang Yang.sublime-build", + "Build and Run" + ] + ], + [ + "Packages/C++ & C Single File Builder - Minghang Yang/C Builder-Minghang Yang.sublime-build", + "Build and Run" + ] + ], + [ + [ + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ] + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ] + ], + [ + [ + [ + "Packages/C++11/C++11.sublime-build", + "" + ], + [ + "Packages/C++11/C++11.sublime-build", + "Run" + ] + ], + [ + "Packages/C++11/C++11.sublime-build", + "" + ] + ] + ], + "build_varint": "", + "command_palette": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + [ + "pack", + "Package Control: List Packages" + ], + [ + "package", + "Package Control: Install Package" + ], + [ + "package con", + "Package Control: Install Package" + ] + ], + "width": 0.0 + }, + "console": + { + "height": 136.0, + "history": + [ + ] + }, + "distraction_free": + { + "menu_visible": true, + "show_minimap": false, + "show_open_files": false, + "show_tabs": false, + "side_bar_visible": false, + "status_bar_visible": false + }, + "expanded_folders": + [ + "/Users/127885/Documents/gs_projects/gs_project_template" + ], + "file_history": + [ + "/Users/127885/Documents/gs_projects/physics_api_test/third_party/include/gs/util/gs_idraw.h", + "/Users/127885/Documents/gs_projects/physics_api_test/third_party/include/gs/util/gs_physics.h", + "/Users/127885/Documents/Work/WatchFaces/fossil-engine/UDroid/app/src/main/cpp/core/fs_complication.h", + "/Users/127885/Documents/Work/WatchFaces/fossil-engine/UDroid/app/src/main/cpp/gs_wear_os_platform.h", + "/Users/127885/Documents/Work/WatchFaces/fossil-engine/UDroid/app/src/main/cpp/fs_watchface.c", + "/Users/127885/Documents/Work/WatchFaces/fossil-engine/UDroid/app/src/main/cpp/fs_entity.c", + "/Users/127885/Documents/Work/WatchFaces/fossil-engine/UDroid/app/src/main/cpp/fs_complication.h", + "/Users/127885/Documents/Work/WatchFaces/fossil-engine/UDroid/app/src/main/cpp/fs_complication.c", + "/Users/127885/Documents/Work/WatchFaces/fossil-engine/UDroid/app/src/main/cpp/fs_entity.h", + "/Users/127885/Downloads/gs_project_template-main/third_party/include/tinyobj/tinyobj.h", + "/Users/127885/Downloads/gs_project_template-main/assets/ribbon.gltf", + "/Users/127885/Downloads/gs_project_template-main/assets/ribbon.glb", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/util/gs_gfxt.h", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/util/gs_idraw.h", + "/Users/127885/Documents/gs_projects/gs_examples/24_test/source/main.c", + "/Users/127885/Documents/gs_projects/EP01_SandSim/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/24_udroid/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/24_udroid/external/nanovgXC/src/nanovg.c", + "/Users/127885/Documents/gs_projects/gs_examples/24_udroid/external/nanovgXC/src/nanovg.h", + "/Users/127885/Documents/gs_projects/gs_examples/24_udroid/external/nanovgXC/src/nanovg_sw.h", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/impl/gs_platform_impl.h", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/external/cgltf/cgltf.h", + "/Users/127885/Documents/gs_projects/gs_examples/24_udroid/external/nanovgXC/src/fontstash.h", + "/Users/127885/Documents/gs_projects/gs_examples/24_udroid/proc/osx/gcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/gs.h", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/impl/gs_graphics_impl.h", + "/Users/127885/Documents/gs_projects/test_example/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/14_immediate_draw/source/main.c", + "/Users/127885/Documents/gs_projects/analog_hand_example/proc/osx/gcc.sh", + "/Users/127885/Documents/gs_projects/analog_hand_example/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/analog_hand_example/third_party/include/gs/gs.h", + "/Users/127885/Documents/gs_projects/analog_hand_example/test.bin", + "/Users/127885/Documents/gs_projects/gs_examples/23_marching_cubes/source/tinycthread/source/tinycthread.h", + "/Users/127885/Documents/gs_projects/gs_examples/13_imgui/src/gs_imgui.h", + "/Users/127885/Documents/gs_projects/gs_examples/10_non_interleave_instancing/proc/osx/gcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/01_gs_cpp/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/16_nuklear_gui/source/gs_nuklear.h", + "/Users/127885/Documents/gs_projects/gs_examples/23_marching_cubes/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/23_marching_cubes/source/data.c", + "/Users/127885/Documents/gs_projects/gs_examples/10_non_interleave_instancing/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/21_stencil_test/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/20_uniforms_advanced/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/18_flecs/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/16_nuklear_gui/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/15_meta_class/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/14_immediate_draw/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/10_non_interleave_instancing/proc/html5/emcc.sh", + "/Users/127885/Documents/Development/opengl-canvas-wasm/main.cpp", + "/Users/127885/Documents/gs_projects/gs_examples/22_emscripten/proc/emsc/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/22_emscripten/source/platform_impl_emsc.c", + "/Users/127885/Documents/gs_projects/gs_examples/22_emscripten/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/19_uniform_buffers/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/00_hello_gs/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/02_simple_triangle/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/03_uniforms/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/04_simple_texture/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/05_containers/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/06_non_interleaved_data/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/07_instancing/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/09_frame_buffer/proc/html5/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/22_emscripten/source/platform_emsc_impl.h", + "/Users/127885/Documents/gs_projects/gs_examples/22_emscripten/proc/osx/emcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/21_stencil_test/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/04_simple_texture/source/main.c", + "/Users/127885/Documents/gs_projects/gs_raycast/third_party/include/gs/util/gs_idraw.h", + "/Users/127885/Documents/gs_projects/gs_examples/06_non_interleaved_data/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/03_uniforms/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/02_simple_triangle/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/13_imgui/src/impl.cpp", + "/Users/127885/Documents/gs_projects/gs_examples/12_asset_manager/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/19_uniform_blocks/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/18_flecs/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/18_flecs/proc/osx/gcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/09_frame_buffer/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/18_flecs/external/flecs/flecs.c", + "/Users/127885/Documents/gs_projects/gs_examples/18_flecs/proc/linux/gcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/07_instancing/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/15_meta_class/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/11_compute_shader/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/00_hello_gs/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/simple_texture/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/uniforms/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/asset_manager/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/simple_triangle/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/imgui/src/gs_imgui.h", + "/Users/127885/Documents/gs_projects/gs_examples/imgui/external/imgui/imgui.h", + "/Users/127885/Documents/gs_projects/gs_examples/containers/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/frame_buffer/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/nuklear_gui/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/imgui/src/main.cpp", + "/Users/127885/Documents/gs_projects/gs_examples/hello_gs/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/external/glfw/win32_joystick.c", + "/Users/127885/Documents/gs_projects/gs_examples/hello_gs/proc/osx/gcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/immediate_draw/source/main.c", + "/Users/127885/Documents/gs_projects/gs_examples/gs_cpp/src/main.cpp", + "/Users/127885/Documents/gs_projects/gs_examples/nuklear_gui/source/gs_nuklear.h", + "/Users/127885/Documents/gs_projects/gs_examples/imgui/proc/osx/gpp.sh", + "/Users/127885/Documents/gs_projects/gs_examples/gs_cpp/proc/osx/gpp.sh", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/external/glfw/cocoa_init.m", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/external/glfw/cocoa_joystick.m", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/external/glfw/cocoa_monitor.m", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/external/glfw/cocoa_window.m", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/external/glfw/nsgl_context.m", + "/Users/127885/Documents/gs_projects/gs_examples/gs_cpp/output.txt", + "/Users/127885/Documents/gs_projects/gs_examples/nuklear_gui/external/Nuklear/src/nuklear.h", + "/Users/127885/Documents/gs_projects/gs_examples/nuklear_gui/external/Nuklear/nuklear.h", + "/Users/127885/Documents/gs_projects/gs_examples/nuklear_gui/source/impl.c", + "/Users/127885/Documents/gs_projects/gs_examples/nuklear_gui/external/Nuklear/src/nuklear_edit.c", + "/Users/127885/Documents/gs_projects/gs_examples/nuklear_gui/proc/osx/gcc.sh", + "/Users/127885/Documents/gs_projects/gs_examples/third_party/include/gs/util/gs_meta.h", + "/Users/127885/Documents/gs_projects/rewind/assets/anims/idle/idle_meta.json", + "/Users/127885/Documents/gs_projects/rewind/third_party/gs/gs.h", + "/Users/127885/Documents/gs_projects/rewind/third_party/gs/util/gs_asset.h", + "/Users/127885/Documents/gs_projects/rewind/proc/linux/gcc.sh", + "/Users/127885/Documents/gs_projects/rewind/proc/osx/gcc.sh", + "/Users/127885/Documents/Random/gunslinger/third_party/include/stb/stb_vorbis.c", + "/Users/127885/Documents/Random/gunslinger/source/graphics/gs_graphics.c", + "/Users/127885/Documents/Random/gunslinger/source/graphics/opengl/gs_graphics_opengl.c", + "/Users/127885/Documents/Random/gunslinger/include/gs.h", + "/Users/127885/Documents/Random/gunslinger/include/graphics/gs_graphics.h", + "/Users/127885/Documents/Random/gunslinger/include/platform/gs_platform.h", + "/Users/127885/Documents/Random/gunslinger/examples/hello_gs/proc/osx/compile_osx_gcc.sh", + "/Users/127885/Documents/Random/gunslinger/source/base/gs_engine.c", + "/Users/127885/Documents/Random/gunslinger/source/audio/gs_audio.c", + "/Users/127885/Documents/Random/gunslinger/source/audio/miniaudio/gs_miniaudio.c", + "/Users/127885/Documents/Random/gunslinger/include/common/gs_types.h", + "/Users/127885/Documents/Random/gunslinger/examples/pong/source/main.c", + "/Users/127885/Documents/Random/gunslinger/include/serialize/gs_byte_buffer.h" + ], + "find": + { + "height": 54.0 + }, + "find_in_files": + { + "height": 239.0, + "where_history": + [ + ] + }, + "find_state": + { + "case_sensitive": false, + "find_history": + [ + ], + "highlight": true, + "in_selection": false, + "preserve_case": false, + "regex": false, + "replace_history": + [ + ], + "reverse": false, + "show_context": true, + "use_buffer2": true, + "whole_word": false, + "wrap": true + }, + "groups": + [ + { + "sheets": + [ + ] + } + ], + "incremental_find": + { + "height": 24.0 + }, + "input": + { + "height": 66.0 + }, + "layout": + { + "cells": + [ + [ + 0, + 0, + 1, + 1 + ] + ], + "cols": + [ + 0.0, + 1.0 + ], + "rows": + [ + 0.0, + 1.0 + ] + }, + "menu_visible": true, + "output.exec": + { + "height": 49.0 + }, + "output.find_results": + { + "height": 0.0 + }, + "pinned_build_system": "Packages/User/c_build_mac.sublime-build", + "project": "gs_project.sublime-project", + "replace": + { + "height": 44.0 + }, + "save_all_on_build": true, + "select_file": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + [ + "gs.h", + "third_party/include/gs/gs.h" + ], + [ + "physics.h", + "third_party/include/gs/util/gs_physics.h" + ], + [ + "main.c", + "source/main.c" + ], + [ + "phy", + "third_party/include/gs/util/gs_physics.h" + ], + [ + "smmian.c", + "source/sm_main.c" + ], + [ + "enity.h", + "source/sm_entity.h" + ], + [ + "smcomponenth", + "source/sm_component.h" + ], + [ + "gsidraw.h", + "app/src/main/cpp/third_party/gs/util/gs_idraw.h" + ], + [ + "gsplatformimpl", + "app/src/main/cpp/third_party/gs/impl/gs_platform_impl.h" + ], + [ + "platformipml", + "app/src/main/cpp/third_party/gs/impl/gs_platform_impl.h" + ], + [ + "platformimpl", + "app/src/main/cpp/third_party/gs/impl/gs_platform_impl.h" + ], + [ + "gs_gfxt", + "util/gs_gfxt.h" + ], + [ + "gltf", + "gs_project_template-main/third_party/include/gs/external/cgltf/cgltf.h" + ], + [ + "tinyobj", + "third_party/include/tinyobj/tinyobj.h" + ], + [ + "gf", + "third_party/include/gs/util/gs_gfxt.h" + ], + [ + "cgltf", + "third_party/include/gs/external/cgltf/cgltf.h" + ], + [ + "platformipl", + "third_party/include/gs/impl/gs_platform_impl.h" + ], + [ + "nanovg", + "24_udroid/external/nanovgXC/src/nanovg.c" + ], + [ + "nanovg.c", + "24_udroid/external/nanovgXC/src/nanovg.c" + ], + [ + "gsi", + "third_party/include/gs/util/gs_idraw.h" + ], + [ + "nvg.h", + "24_udroid/external/nanovgXC/src/nanovg.h" + ], + [ + "nanovg.h", + "24_udroid/external/nanovgXC/src/nanovg.h" + ], + [ + "nanovgsw", + "24_udroid/external/nanovgXC/src/nanovg_sw.h" + ], + [ + "nvgsw", + "24_udroid/external/nanovgXC/src/nanovg_sw.h" + ], + [ + "nvg", + "24_udroid/external/nanovgXC/src/nanovg.h" + ], + [ + "idraw.h", + "third_party/include/gs/util/gs_idraw.h" + ], + [ + "graphicsimpl", + "third_party/include/gs/impl/gs_graphics_impl.h" + ], + [ + "platformim", + "third_party/include/gs/impl/gs_platform_impl.h" + ], + [ + "gsidraw", + "third_party/include/gs/util/gs_idraw.h" + ], + [ + "audioimpl", + "third_party/include/gs/impl/gs_audio_impl.h" + ], + [ + "gs", + "third_party/include/gs/util/gs_idraw.h" + ], + [ + "graphicsi", + "third_party/include/gs/impl/gs_graphics_impl.h" + ], + [ + "gsidarw", + "third_party/include/gs/util/gs_idraw.h" + ], + [ + "asset.h", + "third_party/include/gs/util/gs_asset.h" + ], + [ + "gas", + "third_party/include/gs/util/gs_asset.h" + ], + [ + "gsasset.h", + "third_party/include/gs/util/gs_asset.h" + ], + [ + "tiny", + "23_marching_cubes/source/tinycthread/source/tinycthread.h" + ], + [ + "graphicsimp", + "third_party/include/gs/impl/gs_graphics_impl.h" + ], + [ + "simpletexture.c", + "04_simple_texture/source/main.c" + ], + [ + "flecsmain.c", + "18_flecs/source/main.c" + ], + [ + "unif.c", + "03_uniforms/source/main.c" + ], + [ + "gsnuk", + "16_nuklear_gui/source/gs_nuklear.h" + ], + [ + "gsigui.h", + "13_imgui/src/gs_imgui.h" + ], + [ + "graphics.h", + "third_party/include/gs/impl/gs_graphics_impl.h" + ], + [ + "uniform.c", + "03_uniforms/source/main.c" + ], + [ + "idraw", + "third_party/include/gs/util/gs_idraw.h" + ], + [ + "grpahicsimp", + "third_party/include/gs/impl/gs_graphics_impl.h" + ], + [ + "impl", + "13_imgui/src/impl.cpp" + ], + [ + "assetmanager.c", + "12_asset_manager/source/main.c" + ], + [ + "felcsmain.c", + "18_flecs/source/main.c" + ], + [ + "felcs.c", + "18_flecs/external/flecs/flecs.c" + ], + [ + "flecsg", + "18_flecs/proc/osx/gcc.sh" + ], + [ + "flecsgcc", + "18_flecs/proc/linux/gcc.sh" + ], + [ + "09framebufer.c", + "09_frame_buffer/source/main.c" + ], + [ + "uniforms.c", + "03_uniforms/source/main.c" + ], + [ + "compute.c", + "11_compute_shader/source/main.c" + ], + [ + "metamain.c", + "15_meta_class/source/main.c" + ], + [ + "gsgrpahicsimp", + "third_party/include/gs/impl/gs_graphics_impl.h" + ], + [ + "flecs.c", + "18_flecs/external/flecs/flecs.c" + ], + [ + "triangle.c", + "simple_triangle/source/main.c" + ], + [ + "assetmanger.c", + "asset_manager/source/main.c" + ], + [ + "framebuffer.c", + "frame_buffer/source/main.c" + ], + [ + "gs.", + "third_party/include/gs/gs.h" + ], + [ + "conatiners.c", + "containers/source/main.c" + ], + [ + "imgui.h", + "imgui/external/imgui/imgui.h" + ], + [ + "gsimgui.h", + "imgui/src/gs_imgui.h" + ], + [ + "imgui.cp", + "imgui/src/main.cpp" + ], + [ + "win32jo", + "third_party/include/gs/external/glfw/win32_joystick.c" + ], + [ + "immediatedraw.c", + "immediate_draw/source/main.c" + ], + [ + "nsglcon.m", + "third_party/include/gs/external/glfw/nsgl_context.m" + ], + [ + "cocawin", + "third_party/include/gs/external/glfw/cocoa_window.m" + ], + [ + "mo", + "third_party/include/gs/external/glfw/cocoa_monitor.m" + ], + [ + "cocoa_jo.m", + "third_party/include/gs/external/glfw/cocoa_joystick.m" + ], + [ + "out", + "gs_cpp/output.txt" + ], + [ + "cocai", + "third_party/include/gs/external/glfw/cocoa_init.m" + ], + [ + "nuklear.h", + "nuklear_gui/external/Nuklear/nuklear.h" + ], + [ + "src/nuklear.h", + "nuklear_gui/external/Nuklear/src/nuklear.h" + ], + [ + "src/nuke", + "nuklear_gui/external/Nuklear/src/nuklear_edit.c" + ], + [ + "gsnu", + "nuklear_gui/source/gs_nuklear.h" + ], + [ + "nuk", + "nuklear_gui/external/Nuklear/nuklear.h" + ], + [ + "gs_nu", + "nuklear_gui/source/gs_nuklear.h" + ], + [ + "mai.c", + "containers/source/main.c" + ], + [ + "gsmeta.h", + "third_party/include/gs/util/gs_meta.h" + ], + [ + "meta.h", + "third_party/include/gs/util/gs_meta.h" + ], + [ + "meta", + "third_party/include/gs/util/gs_meta.h" + ], + [ + "gsa", + "third_party/gs/util/gs_asset.h" + ], + [ + "gcc", + "proc/osx/gcc.sh" + ], + [ + "gladimpl", + "external/glad/glad_impl.h" + ], + [ + "procosx", + "proc/osx/compile_osx_gcc.sh" + ], + [ + "graphics.c", + "source/graphics/gs_graphics.c" + ], + [ + "grpahics.h", + "include/graphics/gs_graphics.h" + ], + [ + "opengl", + "source/graphics/opengl/gs_graphics_opengl.c" + ], + [ + "opengl.c", + "source/graphics/opengl/gs_graphics_opengl.c" + ], + [ + "immediate.c", + "examples/simple_immediate_rend/source/main.c" + ], + [ + "simpletriangle.c", + "examples/simple_triangle/source/main.c" + ], + [ + "simpletri.c", + "examples/simple_triangle/source/main.c" + ], + [ + "simpletr", + "examples/simple_triangle/source/main.c" + ], + [ + "engine.c", + "source/base/gs_engine.c" + ], + [ + "types.h", + "include/common/gs_types.h" + ], + [ + "ut", + "include/common/gs_util.h" + ], + [ + "audio.c", + "source/audio/gs_audio.c" + ], + [ + "miniaudio.c", + "source/audio/miniaudio/gs_miniaudio.c" + ], + [ + "vorbis.c", + "third_party/include/stb/stb_vorbis.c" + ], + [ + "vor", + "third_party/include/stb/stb_vorbis.c" + ], + [ + "containers.h", + "include/common/gs_containers.h" + ], + [ + "platform.c", + "source/platform/gs_platform.c" + ], + [ + "glfw.c", + "source/platform/glfw/gs_platform_glfw.c" + ], + [ + "hellgs.c", + "examples/hello_gs/source/main.c" + ], + [ + "engine.h", + "include/base/gs_engine.h" + ], + [ + "math.h", + "include/math/gs_math.h" + ], + [ + "bytebuffer.h", + "include/serialize/gs_byte_buffer.h" + ], + [ + "simpelconta.c", + "examples/simple_containers/source/main.c" + ], + [ + "containers", + "include/common/gs_containers.h" + ], + [ + "platform.h", + "include/platform/gs_platform.h" + ], + [ + "bytebuffer.c", + "source/serialize/gs_byte_buffer.c" + ], + [ + "util.h", + "include/common/gs_util.h" + ], + [ + "pong.c", + "examples/pong/source/main.c" + ], + [ + "material.c", + "source/graphics/gs_material.c" + ], + [ + "opeg", + "source/graphics/opengl/gs_graphics_opengl.c" + ], + [ + "simpleim.c", + "examples/simple_immediate_rend/source/main.c" + ], + [ + "miniaudi.c", + "source/audio/miniaudio/gs_miniaudio.c" + ], + [ + "minaudio.c", + "source/audio/miniaudio/gs_miniaudio.c" + ], + [ + "maaudio.c", + "source/audio/miniaudio/gs_miniaudio.c" + ], + [ + "audio.h", + "include/audio/gs_audio.h" + ], + [ + "simpleconat.c", + "examples/simple_containers/source/main.c" + ], + [ + "customquadbatch.c", + "examples/custom_quad_batch/source/main.c" + ], + [ + "quadbatch.c", + "source/graphics/gs_quad_batch.c" + ], + [ + "quadbatch.h", + "include/graphics/gs_quad_batch.h" + ] + ], + "width": 0.0 + }, + "select_project": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "select_symbol": + { + "height": 354.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 635.0 + }, + "selected_group": 0, + "settings": + { + }, + "show_minimap": false, + "show_open_files": false, + "show_tabs": true, + "side_bar_visible": true, + "side_bar_width": 163.0, + "status_bar_visible": true, + "template_settings": + { + } +} diff --git a/proc/win/cl.bat b/proc/win/cl.bat @@ -0,0 +1,35 @@ +@echo off +rmdir /Q /S bin +mkdir bin +pushd bin + +rem Name +set name=App + +rem Include directories +set inc=/I ..\third_party\include\ + +rem Source files +set src_main=..\source\*.c + +rem All source together +set src_all=%src_main% + +rem OS Libraries +set os_libs= opengl32.lib kernel32.lib user32.lib ^ +shell32.lib vcruntime.lib msvcrt.lib gdi32.lib Winmm.lib Advapi32.lib + +rem Link options +set l_options=/EHsc /link /SUBSYSTEM:CONSOLE /NODEFAULTLIB:msvcrt.lib + +rem Compile Release +rem cl /MP /FS /Ox /W0 /Fe%name%.exe %src_all% %inc% ^ +rem /EHsc /link /SUBSYSTEM:CONSOLE /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:LIBCMT ^ +rem %os_libs% + +rem Compile Debug +cl /w /MP -Zi /DEBUG:FULL /Fe%name%.exe %src_all% %inc% ^ +/EHsc /link /SUBSYSTEM:CONSOLE /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:LIBCMT ^ +%os_libs% + +popd diff --git a/proc/win/mingw.sh b/proc/win/mingw.sh @@ -0,0 +1,40 @@ +#!bin/sh + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=gnu99 -w +) + +# Include directories +inc=( + -I ../third_party/include/ # Gunslinger includes +) + +# Source files +src=( + ../source/main.c +) + +libs=( + -lopengl32 + -lkernel32 + -luser32 + -lshell32 + -lgdi32 + -lWinmm + -lAdvapi32 +) + +# Build +gcc -O0 ${inc[*]} ${src[*]} ${flags[*]} ${libs[*]} -lm -o ${proj_name} + +cd .. + + + diff --git a/proc/win/mingw_cross_platform.sh b/proc/win/mingw_cross_platform.sh @@ -0,0 +1,39 @@ +#!bin/bash + +# Make sure you have mingw-w64 installed for this to work. +# It should be available in most linux package managers and with brew(MacOS). + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=gnu99 -w +) + +# Include directories +inc=( + -I ../third_party/include/ # Gunslinger includes +) + +# Source files +src=( + ../source/main.c +) + +libs=( + -lopengl32 + -lkernel32 + -luser32 + -lshell32 + -lgdi32 + -lwinmm +) + +# Build +x86_64-w64-mingw32-gcc -O0 ${inc[*]} ${src[*]} ${flags[*]} ${libs[*]} -lm -o ${proj_name} + +cd .. diff --git a/proc/win/mingw_dbg.sh b/proc/win/mingw_dbg.sh @@ -0,0 +1,41 @@ +#!bin/sh + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=gnu99 -w +) + +# Include directories +inc=( + -I ../third_party/include/ # Gunslinger includes +) + +# Source files +src=( + ../source/main.c +) + +libs=( + -lopengl32 + -lkernel32 + -luser32 + -lshell32 + -lgdi32 + -lWinmm + -lAdvapi32 +) + +# Build +echo gcc -O0 ${inc[*]} ${src[*]} ${flags[*]} ${libs[*]} -lm -o ${proj_name} +gcc -O0 ${inc[*]} ${src[*]} ${flags[*]} ${libs[*]} -lm -o ${proj_name} + +cd .. + + + diff --git a/proc/win/mingw_rdbg.sh b/proc/win/mingw_rdbg.sh @@ -0,0 +1,41 @@ +#!bin/sh + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=gnu99 -w +) + +# Include directories +inc=( + -I ../third_party/include/ # Gunslinger includes +) + +# Source files +src=( + ../source/main.c +) + +libs=( + -lopengl32 + -lkernel32 + -luser32 + -lshell32 + -lgdi32 + -lWinmm + -lAdvapi32 +) + +# Build +echo gcc -O1 ${inc[*]} ${src[*]} ${flags[*]} ${libs[*]} -lm -o ${proj_name} +gcc -O1 ${inc[*]} ${src[*]} ${flags[*]} ${libs[*]} -lm -o ${proj_name} + +cd .. + + + diff --git a/proc/win/mingw_rel.sh b/proc/win/mingw_rel.sh @@ -0,0 +1,41 @@ +#!bin/sh + +rm -rf bin +mkdir bin +cd bin + +proj_name=App +proj_root_dir=$(pwd)/../ + +flags=( + -std=gnu99 -w +) + +# Include directories +inc=( + -I ../third_party/include/ # Gunslinger includes +) + +# Source files +src=( + ../source/main.c +) + +libs=( + -lopengl32 + -lkernel32 + -luser32 + -lshell32 + -lgdi32 + -lWinmm + -lAdvapi32 +) + +# Build +echo gcc -O3 ${inc[*]} ${src[*]} ${flags[*]} ${libs[*]} -lm -o ${proj_name} +gcc -O3 ${inc[*]} ${src[*]} ${flags[*]} ${libs[*]} -lm -o ${proj_name} + +cd .. + + + diff --git a/source/main.c b/source/main.c @@ -0,0 +1,78 @@ +#define GS_IMPL +#include <gs/gs.h> + +#define GS_IMMEDIATE_DRAW_IMPL +#include <gs/util/gs_idraw.h> + +#define GS_GUI_IMPL +#include <gs/util/gs_gui.h> + +typedef struct app_t +{ + gs_command_buffer_t cb; + gs_immediate_draw_t gsi; + gs_gui_context_t gui; +} app_t; + +void app_init() +{ + app_t* app = gs_user_data(app_t); + app->cb = gs_command_buffer_new(); + app->gsi = gs_immediate_draw_new(gs_platform_main_window()); + gs_gui_init(&app->gui, gs_platform_main_window()); +} + +void app_update() +{ + app_t* app = gs_user_data(app_t); + gs_command_buffer_t* cb = &app->cb; + gs_immediate_draw_t* gsi = &app->gsi; + gs_gui_context_t* gui = &app->gui; + + gs_vec2 fbs = gs_platform_framebuffer_sizev(gs_platform_main_window()); + const float t = gs_platform_elapsed_time() * 0.0001f; + + if (gs_platform_key_pressed(GS_KEYCODE_ESC)) { + gs_quit(); + } + + gsi_camera3D(gsi, fbs.x, fbs.y); + gsi_rotatev(gsi, gs_deg2rad(90.f), GS_ZAXIS); gsi_rotatev(gsi, t, GS_YAXIS); + gsi_sphere(gsi, 0.f, 0.f, 0.f, 1.f, 50, 150, 200, 50, GS_GRAPHICS_PRIMITIVE_LINES); + gsi_camera2D(gsi, fbs.x, fbs.y); + gsi_text(gsi, fbs.x * 0.5f - 70.f, fbs.y * 0.5f, "Hello, Gunslinger.", NULL, false, 255, 255, 255, 255); + gsi_renderpass_submit(gsi, cb, fbs.x, fbs.y, gs_color(10, 10, 10, 255)); + + // Render gui + gs_gui_begin(gui, NULL); + if (gs_gui_window_begin(gui, "App", gs_gui_rect(100, 100, 200, 200))) { + gs_gui_layout_row(gui, 1, (int[]){-1}, 0); + gs_gui_text(gui, "Hello, Gunslinger."); + gs_gui_window_end(gui); + } + gs_gui_end(gui); + gs_gui_render(gui, cb); + + // Submit command buffer for GPU + gs_graphics_command_buffer_submit(cb); +} + +void app_shutdown() +{ + app_t* app = gs_user_data(app_t); + gs_immediate_draw_free(&app->gsi); + gs_command_buffer_free(&app->cb); + gs_gui_free(&app->gui); +} + +gs_app_desc_t gs_main(int32_t argc, char** argv) +{ + return (gs_app_desc_t) { + .user_data = gs_malloc_init(app_t), + .window_width = 800, + .window_height = 600, + .init = app_init, + .update = app_update, + .shutdown = app_shutdown + }; +} diff --git a/third_party/include/gs b/third_party/include/gs @@ -0,0 +1 @@ +Subproject commit 4d533f52c5e5e307d17827a0ebd9db997e9d60fe