probably final commit

This commit is contained in:
sam 2024-11-18 21:52:30 +13:00
parent 81bdfd478c
commit f6bfd40e05
7 changed files with 49 additions and 53 deletions

View file

@ -1,51 +1,56 @@
[ [
{ {
"directory": "/home/sam/Documents/Projects/brimstone", "directory": "/home/sam/Documents/Projects/brimstone-sdlgpu",
"arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/io/file.c.o", "src/brimstone/io/file.c"], "arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/io/file.c.o", "src/brimstone/io/file.c"],
"file": "src/brimstone/io/file.c" "file": "src/brimstone/io/file.c"
}, },
{ {
"directory": "/home/sam/Documents/Projects/brimstone", "directory": "/home/sam/Documents/Projects/brimstone-sdlgpu",
"arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/io/copy_pass.c.o", "src/brimstone/io/copy_pass.c"], "arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/io/copy_pass.c.o", "src/brimstone/io/copy_pass.c"],
"file": "src/brimstone/io/copy_pass.c" "file": "src/brimstone/io/copy_pass.c"
}, },
{ {
"directory": "/home/sam/Documents/Projects/brimstone", "directory": "/home/sam/Documents/Projects/brimstone-sdlgpu",
"arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/transfer_buffer.c.o", "src/brimstone/graphics/transfer_buffer.c"], "arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/transfer_buffer.c.o", "src/brimstone/graphics/transfer_buffer.c"],
"file": "src/brimstone/graphics/transfer_buffer.c" "file": "src/brimstone/graphics/transfer_buffer.c"
}, },
{ {
"directory": "/home/sam/Documents/Projects/brimstone", "directory": "/home/sam/Documents/Projects/brimstone-sdlgpu",
"arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/upload.c.o", "src/brimstone/graphics/upload.c"], "arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/upload.c.o", "src/brimstone/graphics/upload.c"],
"file": "src/brimstone/graphics/upload.c" "file": "src/brimstone/graphics/upload.c"
}, },
{ {
"directory": "/home/sam/Documents/Projects/brimstone", "directory": "/home/sam/Documents/Projects/brimstone-sdlgpu",
"arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/command_buffer.c.o", "src/brimstone/graphics/command_buffer.c"], "arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/command_buffer.c.o", "src/brimstone/graphics/command_buffer.c"],
"file": "src/brimstone/graphics/command_buffer.c" "file": "src/brimstone/graphics/command_buffer.c"
}, },
{ {
"directory": "/home/sam/Documents/Projects/brimstone", "directory": "/home/sam/Documents/Projects/brimstone-sdlgpu",
"arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/shaders.c.o", "src/brimstone/graphics/shaders.c"], "arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/shaders.c.o", "src/brimstone/graphics/shaders.c"],
"file": "src/brimstone/graphics/shaders.c" "file": "src/brimstone/graphics/shaders.c"
}, },
{ {
"directory": "/home/sam/Documents/Projects/brimstone", "directory": "/home/sam/Documents/Projects/brimstone-sdlgpu",
"arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/device.c.o", "src/brimstone/graphics/device.c"], "arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/device.c.o", "src/brimstone/graphics/device.c"],
"file": "src/brimstone/graphics/device.c" "file": "src/brimstone/graphics/device.c"
}, },
{ {
"directory": "/home/sam/Documents/Projects/brimstone", "directory": "/home/sam/Documents/Projects/brimstone-sdlgpu",
"arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/pipeline.c.o", "src/brimstone/graphics/pipeline.c"], "arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/graphics/pipeline.c.o", "src/brimstone/graphics/pipeline.c"],
"file": "src/brimstone/graphics/pipeline.c" "file": "src/brimstone/graphics/pipeline.c"
}, },
{ {
"directory": "/home/sam/Documents/Projects/brimstone", "directory": "/home/sam/Documents/Projects/brimstone-sdlgpu",
"arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/init/systems.c.o", "src/brimstone/init/systems.c"], "arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/init/systems.c.o", "src/brimstone/init/systems.c"],
"file": "src/brimstone/init/systems.c" "file": "src/brimstone/init/systems.c"
}, },
{ {
"directory": "/home/sam/Documents/Projects/brimstone", "directory": "/home/sam/Documents/Projects/brimstone-sdlgpu",
"arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/main.c.o", "src/brimstone/main.c"], "arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/main.c.o", "src/brimstone/main.c"],
"file": "src/brimstone/main.c" "file": "src/brimstone/main.c"
},
{
"directory": "/home/sam/Documents/Projects/brimstone-sdlgpu",
"arguments": ["/usr/bin/gcc", "-c", "-g", "-O0", "-Isrc", "-DDEBUG", "-I", "/home/sam/.xmake/packages/s/stc/v4.2/bfec6d3335d54b48969cc50946a9b5ac/include", "-I", "/home/sam/.xmake/packages/c/cglm/v0.9.4/02efbe15d36b48b6bf756a5d63445178/include", "-o", "build/.objs/brimstone/linux/arm64/debug/src/brimstone/misc/malloc.c.o", "src/brimstone/misc/malloc.c"],
"file": "src/brimstone/misc/malloc.c"
}] }]

View file

@ -1,13 +1,11 @@
#version 460 #version 460
layout(location = 0) in vec4 vertColor; layout(location = 0) in vec2 vertTexCoords;
layout(location = 1) in vec2 vertTexCoords;
layout(location = 0) out vec4 fragColor; layout(location = 0) out vec4 fragColor;
layout(set = 2, binding = 0) uniform sampler2D Sampler; layout(set = 2, binding = 0) uniform sampler2D textureSampler;
void main() { void main() {
fragColor = texture(Sampler, vertTexCoords) * vertColor; fragColor = texture(textureSampler, vertTexCoords);
} }

View file

@ -1,11 +1,8 @@
#version 460 #version 460
layout(location = 0) in vec3 aPos; layout(location = 0) in vec3 aPos;
layout(location = 1) in vec3 aColor; layout(location = 1) in vec2 aTexCoords;
layout(location = 2) in vec2 aTexCoords; layout(location = 0) out vec2 vertTexCoords;
layout(location = 0) out vec4 vertColor;
layout(location = 1) out vec2 vertTexCoords;
layout(set = 1, binding = 0) uniform UBO { layout(set = 1, binding = 0) uniform UBO {
mat4 viewproj; mat4 viewproj;
@ -14,7 +11,6 @@ layout(set = 1, binding = 0) uniform UBO {
void main() { void main() {
vertTexCoords = aTexCoords; vertTexCoords = aTexCoords;
vertColor = vec4(aColor, 1.0f);
mat4 mvp = viewproj * model; mat4 mvp = viewproj * model;
gl_Position = mvp * vec4(aPos, 1.0f); gl_Position = mvp * vec4(aPos, 1.0f);

View file

@ -27,7 +27,7 @@ SDL_GPUGraphicsPipeline* GraphicsPipelineCreate(SDL_GPUDevice* device, SDL_Windo
.pitch = sizeof(Vertex), .pitch = sizeof(Vertex),
}, },
}, },
.num_vertex_attributes = 3, .num_vertex_attributes = 2,
.vertex_attributes = (SDL_GPUVertexAttribute[]){ .vertex_attributes = (SDL_GPUVertexAttribute[]){
{ {
.buffer_slot = 0, .buffer_slot = 0,
@ -35,16 +35,10 @@ SDL_GPUGraphicsPipeline* GraphicsPipelineCreate(SDL_GPUDevice* device, SDL_Windo
.location = 0, .location = 0,
.offset = offsetof(Vertex, pos), .offset = offsetof(Vertex, pos),
}, },
{
.buffer_slot = 0,
.format = SDL_GPU_VERTEXELEMENTFORMAT_FLOAT3,
.location = 1,
.offset = offsetof(Vertex, color),
},
{ {
.buffer_slot = 0, .buffer_slot = 0,
.format = SDL_GPU_VERTEXELEMENTFORMAT_FLOAT2, .format = SDL_GPU_VERTEXELEMENTFORMAT_FLOAT2,
.location = 2, .location = 1,
.offset = offsetof(Vertex, texcoords), .offset = offsetof(Vertex, texcoords),
} }
} }

View file

@ -1,16 +1,11 @@
#ifndef VERTEX_H #ifndef VERTEX_H
#define VERTEX_H #define VERTEX_H
#include <cglm/cglm.h>
typedef struct { typedef struct {
struct { vec3 pos;
float x, y, z; vec2 texcoords;
} pos;
struct {
float r, g, b;
} color;
struct {
float x, y;
} texcoords;
} Vertex; } Vertex;
#endif #endif

View file

@ -10,10 +10,10 @@ int main(int argc, char** argv) {
LogAssertSDL(success, "Failed to claim window for device"); LogAssertSDL(success, "Failed to claim window for device");
Vertex vertices[] = { Vertex vertices[] = {
{ { -0.5f, 0.5f, 0.0f }, { 1.0f, 1.0f, 1.0f }, { 0.0f, 0.0f } }, // top left { { -0.5f, 0.5f, 0.0f }, { 0.0f, 0.0f } }, // top left
{ { -0.5f, -0.5f, 0.0f }, { 1.0f, 0.0f, 0.0f }, { 0.0f, 1.0f } }, // bottom left { { -0.5f, -0.5f, 0.0f }, { 0.0f, 1.0f } }, // bottom left
{ { 0.5f, -0.5f, 0.0f }, { 1.0f, 0.0f, 0.0f }, { 1.0f, 1.0f } }, // bottom right { { 0.5f, -0.5f, 0.0f }, { 1.0f, 1.0f } }, // bottom right
{ { 0.5f, 0.5f, 0.0f }, { 1.0f, 1.0f, 1.0f }, { 1.0f, 0.0f } }, // top right { { 0.5f, 0.5f, 0.0f }, { 1.0f, 0.0f } }, // top right
}; };
int indices[] = { 0, 1, 2, 2, 3, 0 }; int indices[] = { 0, 1, 2, 2, 3, 0 };
@ -45,10 +45,15 @@ int main(int argc, char** argv) {
ShaderFree(device, vertex_shader); ShaderFree(device, vertex_shader);
ShaderFree(device, fragment_shader); ShaderFree(device, fragment_shader);
const char* path = "image.jxl"; success = IMG_Init(IMG_INIT_JPG);
LogAssertSDL(success, "Failed to initialize SDL_image");
const char* path = "image.jpg";
SDL_Surface* image = IMG_Load(path); SDL_Surface* image = IMG_Load(path);
LogAssertSDLf(image != NULL, "Failed to load image: %s", path); LogAssertSDLf(image != NULL, "Failed to load image: %s", path);
printf("%d %d\n", image->w, image->h);
if(image->format != SDL_PIXELFORMAT_ABGR8888) { if(image->format != SDL_PIXELFORMAT_ABGR8888) {
SDL_Surface* converted = SDL_ConvertSurface(image, SDL_PIXELFORMAT_ABGR8888); SDL_Surface* converted = SDL_ConvertSurface(image, SDL_PIXELFORMAT_ABGR8888);
SDL_DestroySurface(image); SDL_DestroySurface(image);
@ -108,8 +113,8 @@ int main(int argc, char** argv) {
} }
glm_mat4_identity(ubo.model); glm_mat4_identity(ubo.model);
/*glm_rotate( glm_rotate(
ubo.model, glm_rad(sinf(SDL_GetTicks() / 200.0f) * 50.0f), (vec3){ 0.5f, 1.0f, 0.2f });*/ ubo.model, glm_rad(sinf(SDL_GetTicks() / 200.0f) * 50.0f), (vec3){ 0.5f, 1.0f, 0.2f });
SDL_PushGPUVertexUniformData(cmd, 0, &ubo, sizeof(ubo)); SDL_PushGPUVertexUniformData(cmd, 0, &ubo, sizeof(ubo));
@ -145,7 +150,6 @@ int main(int argc, char** argv) {
1); 1);
SDL_DrawGPUIndexedPrimitives(render_pass, sizeof(indices), 1, 0, 0, 0); SDL_DrawGPUIndexedPrimitives(render_pass, sizeof(indices), 1, 0, 0, 0);
SDL_EndGPURenderPass(render_pass); SDL_EndGPURenderPass(render_pass);
CommandBufferSubmit(cmd); CommandBufferSubmit(cmd);
} }

View file

@ -6,13 +6,17 @@
#include <SDL3/SDL_log.h> #include <SDL3/SDL_log.h>
#include <errno.h> #include <errno.h>
#define LogInfof(fmt, ...) SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, fmt, __VA_ARGS__) #ifndef LOG_CATEGORY
#define LogDebugf(fmt, ...) SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, fmt, __VA_ARGS__) #define LOG_CATEGORY SDL_LOG_CATEGORY_APPLICATION
#define LogWarnf(fmt, ...) SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION, fmt, __VA_ARGS__) #endif
#define LogErrorf(fmt, ...) SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, fmt, __VA_ARGS__)
#define LogCriticalf(fmt, ...) SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION, fmt, __VA_ARGS__) #define LogInfof(fmt, ...) SDL_LogInfo(LOG_CATEGORY, fmt, __VA_ARGS__)
#define LogTracef(fmt, ...) SDL_LogTrace(SDL_LOG_CATEGORY_APPLICATION, fmt, __VA_ARGS__) #define LogDebugf(fmt, ...) SDL_LogDebug(LOG_CATEGORY, fmt, __VA_ARGS__)
#define LogVerbosef(fmt, ...) SDL_LogVerbose(SDL_LOG_CATEGORY_APPLICATION, fmt, __VA_ARGS__) #define LogWarnf(fmt, ...) SDL_LogWarn(LOG_CATEGORY, fmt, __VA_ARGS__)
#define LogErrorf(fmt, ...) SDL_LogError(LOG_CATEGORY, fmt, __VA_ARGS__)
#define LogCriticalf(fmt, ...) SDL_LogWarn(LOG_CATEGORY, fmt, __VA_ARGS__)
#define LogTracef(fmt, ...) SDL_LogTrace(LOG_CATEGORY, fmt, __VA_ARGS__)
#define LogVerbosef(fmt, ...) SDL_LogVerbose(LOG_CATEGORY, fmt, __VA_ARGS__)
#define LogAssertf(condition, fmt, ...) \ #define LogAssertf(condition, fmt, ...) \
do { \ do { \