D3D11 build for windows; gif making works everywhere & gif names are now dates
This commit is contained in:
parent
d52b15e1be
commit
3c43a1fad8
33
Makefile
33
Makefile
|
@ -75,7 +75,6 @@ ifeq ($(OS), Windows_NT)
|
||||||
LDFLAGS += -mwin32 -static
|
LDFLAGS += -mwin32 -static
|
||||||
CFLAGS += -mwin32
|
CFLAGS += -mwin32
|
||||||
LDLIBS += mingw32 kernel32 d3d11 user32 shell32 dxgi gdi32 ws2_32 ole32 winmm setupapi m
|
LDLIBS += mingw32 kernel32 d3d11 user32 shell32 dxgi gdi32 ws2_32 ole32 winmm setupapi m
|
||||||
# LDLIBS += mingw32 kernel32 gdi32 user32 shell32 ws2_32 ole32 winmm setupapi m
|
|
||||||
EXT = .exe
|
EXT = .exe
|
||||||
PLAT = w64
|
PLAT = w64
|
||||||
PKGCMD = cd $(BIN); zip -q -r $(MAKEDIR)/$(DISTDIR)/$(DIST) . -x \*.a ./obj/\*
|
PKGCMD = cd $(BIN); zip -q -r $(MAKEDIR)/$(DISTDIR)/$(DIST) . -x \*.a ./obj/\*
|
||||||
|
@ -98,8 +97,7 @@ else
|
||||||
|
|
||||||
ifeq ($(UNAME), Darwin)
|
ifeq ($(UNAME), Darwin)
|
||||||
CFLAGS += -x objective-c
|
CFLAGS += -x objective-c
|
||||||
LDFLAGS += -framework Cocoa -framework QuartzCore -framework AudioToolbox
|
LDFLAGS += -framework Cocoa -framework QuartzCore -framework AudioToolbox -framework Metal -framework MetalKit
|
||||||
LDFLAGS += -framework Metal -framework MetalKit
|
|
||||||
PLAT = osx-$(ARCH)$(INFO)
|
PLAT = osx-$(ARCH)$(INFO)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -159,7 +157,7 @@ $(DISTDIR)/$(DIST): $(BIN)/$(NAME)
|
||||||
@mkdir -p $(DISTDIR)
|
@mkdir -p $(DISTDIR)
|
||||||
@$(PKGCMD)
|
@$(PKGCMD)
|
||||||
|
|
||||||
$(BIN)/libengine.a: $(SHADERS) source/engine/core.cdb.h $(OBJS)
|
$(BIN)/libengine.a: source/engine/core.cdb.h $(OBJS)
|
||||||
@$(AR) rcs $@ $(OBJS)
|
@$(AR) rcs $@ $(OBJS)
|
||||||
|
|
||||||
$(BIN)/libcdb.a:
|
$(BIN)/libcdb.a:
|
||||||
|
@ -168,6 +166,10 @@ $(BIN)/libcdb.a:
|
||||||
make -C $(CDB) CC=$(CC) AR=$(AR) libcdb.a
|
make -C $(CDB) CC=$(CC) AR=$(AR) libcdb.a
|
||||||
cp $(CDB)/libcdb.a $(BIN)
|
cp $(CDB)/libcdb.a $(BIN)
|
||||||
|
|
||||||
|
tools/libcdb.a:
|
||||||
|
make -C $(CDB) libcdb.a
|
||||||
|
mv $(CDB)/libcdb.a tools
|
||||||
|
|
||||||
$(BIN)/libquickjs.a:
|
$(BIN)/libquickjs.a:
|
||||||
make -C quickjs clean
|
make -C quickjs clean
|
||||||
make -C quickjs OPT=$(OPT) HOST_CC=$(CC) AR=$(AR) libquickjs.a libquickjs.lto.a CC=$(CC)
|
make -C quickjs OPT=$(OPT) HOST_CC=$(CC) AR=$(AR) libquickjs.a libquickjs.lto.a CC=$(CC)
|
||||||
|
@ -186,8 +188,8 @@ shaders: $(SHADERS)
|
||||||
@echo Creating shader $^
|
@echo Creating shader $^
|
||||||
@./sokol-shdc --ifdef -i $^ --slang=glsl330:hlsl5:metal_macos:glsl300es -o $@
|
@./sokol-shdc --ifdef -i $^ --slang=glsl330:hlsl5:metal_macos:glsl300es -o $@
|
||||||
|
|
||||||
cdb: tools/cdb.c $(BIN)/libcdb.a
|
cdb: tools/cdb.c tools/libcdb.a
|
||||||
$(CC) $< -lcdb -L$(BIN) -I$(CDB) -o cdb
|
cc $^ -I$(CDB) -o cdb
|
||||||
|
|
||||||
source/engine/core.cdb.h: core.cdb
|
source/engine/core.cdb.h: core.cdb
|
||||||
xxd -i $< > $@
|
xxd -i $< > $@
|
||||||
|
@ -202,11 +204,17 @@ core.cdb: packer $(CORE)
|
||||||
chmod 644 out.cdb
|
chmod 644 out.cdb
|
||||||
mv out.cdb core.cdb
|
mv out.cdb core.cdb
|
||||||
|
|
||||||
packer: tools/packer.c $(BIN)/libcdb.a
|
CDB_C != find $(CDB) -name *.c
|
||||||
cc $^ -Isource/engine/thirdparty/tinycdb -o packer
|
packer: tools/packer.c tools/libcdb.a
|
||||||
|
cc $^ -I$(CDB) -o packer
|
||||||
|
|
||||||
jso: tools/jso.c $(BIN)/libquickjs.a
|
jso: tools/jso.c tools/libquickjs.a
|
||||||
$(CC) $< -lquickjs -lm -L$(BIN) -Iquickjs -o $@
|
$(CC) $^ -lm -Iquickjs -o $@
|
||||||
|
|
||||||
|
tools/libquickjs.a:
|
||||||
|
make -C quickjs clean
|
||||||
|
make -C quickjs OPT=$(OPT) AR=$(AR) libquickjs.a
|
||||||
|
cp -f quickjs/libquickjs.a tools
|
||||||
|
|
||||||
%.jso: %.js jso
|
%.jso: %.js jso
|
||||||
@echo Making $@ from $<
|
@echo Making $@ from $<
|
||||||
|
@ -214,14 +222,13 @@ jso: tools/jso.c $(BIN)/libquickjs.a
|
||||||
|
|
||||||
WINCC = x86_64-w64-mingw32-gcc
|
WINCC = x86_64-w64-mingw32-gcc
|
||||||
.PHONY: crosswin
|
.PHONY: crosswin
|
||||||
crosswin:
|
crosswin:
|
||||||
gmake CC=$(WINCC) OS=Windows_NT
|
make CC=$(WINCC) OS=Windows_NT
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@echo Cleaning project
|
@echo Cleaning project
|
||||||
@rm -rf bin dist
|
@rm -rf bin dist
|
||||||
@rm -f shaders/*.sglsl.h shaders/*.metal core.cdb jso cdb packer TAGS scripts/*.jso
|
@rm -f shaders/*.sglsl.h shaders/*.metal core.cdb jso cdb packer TAGS scripts/*.jso
|
||||||
@make -C $(CDB) clean
|
|
||||||
@make -C quickjs clean
|
@make -C quickjs clean
|
||||||
|
|
||||||
TAGINC != find . -name "*.[chj]"
|
TAGINC != find . -name "*.[chj]"
|
||||||
|
|
|
@ -285,8 +285,14 @@ Debug.Options.gif = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
DebugControls.inputs.f8 = Debug.Options.gif.start.bind(Debug.Options.gif);
|
DebugControls.inputs.f8 = function() {
|
||||||
DebugControls.inputs.f9 = Debug.Options.gif.stop.bind(Debug.Options.gif);
|
var now = new Date();
|
||||||
|
Debug.Options.gif.file = now.toISOString() + ".gif";
|
||||||
|
Debug.Options.gif.start();
|
||||||
|
};
|
||||||
|
DebugControls.inputs.f9 = function() {
|
||||||
|
Debug.Options.gif.stop();
|
||||||
|
}
|
||||||
|
|
||||||
DebugControls.inputs.f10 = function() { Time.timescale = 0.1; };
|
DebugControls.inputs.f10 = function() { Time.timescale = 0.1; };
|
||||||
DebugControls.inputs.f10.doc = "Toggle timescale to 1/10.";
|
DebugControls.inputs.f10.doc = "Toggle timescale to 1/10.";
|
||||||
|
|
|
@ -194,7 +194,8 @@ void debugdraw_init()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.primitive_type = SG_PRIMITIVETYPE_POINTS,
|
.primitive_type = SG_PRIMITIVETYPE_POINTS,
|
||||||
.colors[0].blend = blend_trans
|
.colors[0].blend = blend_trans,
|
||||||
|
.label = "dbg point",
|
||||||
});
|
});
|
||||||
|
|
||||||
point_bind.vertex_buffers[0] = sg_make_buffer(&(sg_buffer_desc){
|
point_bind.vertex_buffers[0] = sg_make_buffer(&(sg_buffer_desc){
|
||||||
|
@ -217,7 +218,8 @@ void debugdraw_init()
|
||||||
},
|
},
|
||||||
.primitive_type = SG_PRIMITIVETYPE_LINES,
|
.primitive_type = SG_PRIMITIVETYPE_LINES,
|
||||||
.index_type = SG_INDEXTYPE_UINT16,
|
.index_type = SG_INDEXTYPE_UINT16,
|
||||||
.colors[0].blend = blend_trans
|
.colors[0].blend = blend_trans,
|
||||||
|
.label = "dbg line",
|
||||||
});
|
});
|
||||||
|
|
||||||
line_bind.vertex_buffers[0] = sg_make_buffer(&(sg_buffer_desc){
|
line_bind.vertex_buffers[0] = sg_make_buffer(&(sg_buffer_desc){
|
||||||
|
@ -283,6 +285,7 @@ void debugdraw_init()
|
||||||
// .cull_mode = sg_cullmode_back,
|
// .cull_mode = sg_cullmode_back,
|
||||||
.label = "grid pipeline",
|
.label = "grid pipeline",
|
||||||
.colors[0].blend = blend_trans,
|
.colors[0].blend = blend_trans,
|
||||||
|
.label = "dbg grid",
|
||||||
});
|
});
|
||||||
|
|
||||||
grid_bind.vertex_buffers[0] = circle_bind.vertex_buffers[1];
|
grid_bind.vertex_buffers[0] = circle_bind.vertex_buffers[1];
|
||||||
|
@ -298,6 +301,7 @@ void debugdraw_init()
|
||||||
},
|
},
|
||||||
.index_type = SG_INDEXTYPE_UINT32,
|
.index_type = SG_INDEXTYPE_UINT32,
|
||||||
.colors[0].blend = blend_trans,
|
.colors[0].blend = blend_trans,
|
||||||
|
.label = "dbg poly",
|
||||||
});
|
});
|
||||||
poly_bind.vertex_buffers[0] = sg_make_buffer(&(sg_buffer_desc){
|
poly_bind.vertex_buffers[0] = sg_make_buffer(&(sg_buffer_desc){
|
||||||
.size = sizeof(struct poly_vertex)*v_amt,
|
.size = sizeof(struct poly_vertex)*v_amt,
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include "yugine.h"
|
||||||
|
|
||||||
#include "script.h"
|
#include "script.h"
|
||||||
|
|
||||||
|
@ -60,6 +61,9 @@ void mYughLog(int category, int priority, int line, const char *file, const char
|
||||||
// if (category == LOG_SCRIPT && priority >= 2)
|
// if (category == LOG_SCRIPT && priority >= 2)
|
||||||
// js_stacktrace();
|
// js_stacktrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (priority >= 2)
|
||||||
|
print_stacktrace();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,5 +97,6 @@ void log_cat(FILE *f) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sg_logging(const char *tag, uint32_t lvl, uint32_t id, const char *msg, uint32_t line, const char *file, void *data) {
|
void sg_logging(const char *tag, uint32_t lvl, uint32_t id, const char *msg, uint32_t line, const char *file, void *data) {
|
||||||
mYughLog(lvl, 1, line, file, "tag: %s, msg: %s", tag, msg);
|
lvl = 3-lvl;
|
||||||
|
mYughLog(2, lvl, line, file, "tag: %s, msg: %s", tag, msg);
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,6 +57,7 @@ void font_init() {
|
||||||
},
|
},
|
||||||
.primitive_type = SG_PRIMITIVETYPE_TRIANGLE_STRIP,
|
.primitive_type = SG_PRIMITIVETYPE_TRIANGLE_STRIP,
|
||||||
.colors[0].blend = blend_trans,
|
.colors[0].blend = blend_trans,
|
||||||
|
.label = "text",
|
||||||
});
|
});
|
||||||
|
|
||||||
float text_verts[8] = {
|
float text_verts[8] = {
|
||||||
|
|
|
@ -69,7 +69,7 @@ void gif_rec_start(int w, int h, int cpf, int bitdepth)
|
||||||
.render_target = true,
|
.render_target = true,
|
||||||
.width = gif.w,
|
.width = gif.w,
|
||||||
.height = gif.h,
|
.height = gif.h,
|
||||||
// .pixel_format = SG_PIXELFORMAT_RGBA8
|
.pixel_format = SG_PIXELFORMAT_RGBA8,
|
||||||
.label = "gif rt",
|
.label = "gif rt",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -180,8 +180,17 @@ static struct {
|
||||||
sg_image depth_img;
|
sg_image depth_img;
|
||||||
} crt_post;
|
} crt_post;
|
||||||
|
|
||||||
|
void trace_make_image(const sg_image_desc *d, sg_image result, void *data)
|
||||||
|
{
|
||||||
|
YughInfo("Making image %s", d->label);
|
||||||
|
}
|
||||||
|
|
||||||
void trace_make_shader(sg_shader_desc *d, sg_shader result, void *data)
|
void trace_init_image(sg_image id, const sg_image_desc *d, void *data)
|
||||||
|
{
|
||||||
|
YughInfo("Init image %s", d->label);
|
||||||
|
}
|
||||||
|
|
||||||
|
void trace_make_shader(const sg_shader_desc *d, sg_shader result, void *data)
|
||||||
{
|
{
|
||||||
if (sg_query_shader_state(result) == SG_RESOURCESTATE_FAILED)
|
if (sg_query_shader_state(result) == SG_RESOURCESTATE_FAILED)
|
||||||
YughError("FAILED MAKING A SHADER: %s\n%s\n%s", d->label);
|
YughError("FAILED MAKING A SHADER: %s\n%s\n%s", d->label);
|
||||||
|
@ -189,18 +198,42 @@ void trace_make_shader(sg_shader_desc *d, sg_shader result, void *data)
|
||||||
|
|
||||||
void trace_fail_shader(sg_shader id, void *data)
|
void trace_fail_shader(sg_shader id, void *data)
|
||||||
{
|
{
|
||||||
YughWarn("SHADER DID NOT COMPILE");
|
YughError("SHADER DID NOT COMPILE");
|
||||||
}
|
}
|
||||||
|
|
||||||
void trace_destroy_shader(sg_shader shd, void *data)
|
void trace_destroy_shader(sg_shader shd, void *data)
|
||||||
{
|
{
|
||||||
YughWarn("DESTROYED SHADER");
|
YughInfo("DESTROYED SHADER");
|
||||||
}
|
}
|
||||||
|
|
||||||
void trace_fail_image(sg_image id, void *data)
|
void trace_fail_image(sg_image id, void *data)
|
||||||
{
|
{
|
||||||
sg_image_desc desc = sg_query_image_desc(id);
|
sg_image_desc desc = sg_query_image_desc(id);
|
||||||
YughWarn("Failed to make image %s", desc.label);
|
YughError("Failed to make image %s", desc.label);
|
||||||
|
}
|
||||||
|
|
||||||
|
void trace_make_pipeline(const sg_pipeline_desc *d, sg_pipeline result, void *data)
|
||||||
|
{
|
||||||
|
YughInfo("Making pipeline %s, id %d", d->label, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
void trace_apply_pipeline(sg_pipeline pip, void *data)
|
||||||
|
{
|
||||||
|
YughInfo("Applying pipeline %d", pip);
|
||||||
|
}
|
||||||
|
|
||||||
|
void trace_fail_pipeline(sg_pipeline pip, void *data)
|
||||||
|
{
|
||||||
|
YughError("Failed pipeline %s", sg_query_pipeline_desc(pip).label);
|
||||||
|
}
|
||||||
|
|
||||||
|
void trace_make_pass(const sg_pass_desc *d, sg_pass result, void *data)
|
||||||
|
{
|
||||||
|
YughInfo("Making pass %s", d->label);
|
||||||
|
}
|
||||||
|
|
||||||
|
void trace_begin_pass(sg_pass pass, const sg_pass_action *action, void *data)
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,6 +241,14 @@ static sg_trace_hooks hooks = {
|
||||||
.fail_shader = trace_fail_shader,
|
.fail_shader = trace_fail_shader,
|
||||||
.make_shader = trace_make_shader,
|
.make_shader = trace_make_shader,
|
||||||
.destroy_shader = trace_destroy_shader,
|
.destroy_shader = trace_destroy_shader,
|
||||||
|
.fail_image = trace_fail_image,
|
||||||
|
.make_image = trace_make_image,
|
||||||
|
.init_image = trace_init_image,
|
||||||
|
.make_pipeline = trace_make_pipeline,
|
||||||
|
.fail_pipeline = trace_fail_pipeline,
|
||||||
|
.apply_pipeline = trace_apply_pipeline,
|
||||||
|
.begin_pass = trace_begin_pass,
|
||||||
|
.make_pass = trace_make_pass,
|
||||||
};
|
};
|
||||||
|
|
||||||
void render_init() {
|
void render_init() {
|
||||||
|
@ -219,24 +260,21 @@ void render_init() {
|
||||||
.context.d3d11.device_context = sapp_d3d11_get_device_context(),
|
.context.d3d11.device_context = sapp_d3d11_get_device_context(),
|
||||||
.context.d3d11.render_target_view_cb = sapp_d3d11_get_render_target_view,
|
.context.d3d11.render_target_view_cb = sapp_d3d11_get_render_target_view,
|
||||||
.context.d3d11.depth_stencil_view_cb = sapp_d3d11_get_depth_stencil_view,
|
.context.d3d11.depth_stencil_view_cb = sapp_d3d11_get_depth_stencil_view,
|
||||||
/* .context.metal.device = sapp_metal_get_device(),
|
.context.metal.device = sapp_metal_get_device(),
|
||||||
.context.metal.renderpass_descriptor_cb = sapp_metal_get_renderpass_descriptor,
|
.context.metal.renderpass_descriptor_cb = sapp_metal_get_renderpass_descriptor,
|
||||||
.context.metal.drawable_cb = sapp_metal_get_drawable,
|
.context.metal.drawable_cb = sapp_metal_get_drawable,
|
||||||
.context.color_format = (sg_pixel_format) sapp_color_format(),
|
.context.color_format = sapp_color_format(),
|
||||||
.context.depth_format = (sg_pixel_format) sapp_depth_format(),
|
.context.depth_format = SG_PIXELFORMAT_DEPTH,
|
||||||
.context.sample_count = sapp_sample_count(),
|
.context.sample_count = sapp_sample_count(),
|
||||||
.context.wgpu.device = sapp_wgpu_get_device(),
|
.context.wgpu.device = sapp_wgpu_get_device(),
|
||||||
.context.wgpu.render_view_cb = sapp_wgpu_get_render_view,
|
.context.wgpu.render_view_cb = sapp_wgpu_get_render_view,
|
||||||
.context.wgpu.resolve_view_cb = sapp_wgpu_get_resolve_view,
|
.context.wgpu.resolve_view_cb = sapp_wgpu_get_resolve_view,
|
||||||
.context.wgpu.depth_stencil_view_cb = sapp_wgpu_get_depth_stencil_view,
|
.context.wgpu.depth_stencil_view_cb = sapp_wgpu_get_depth_stencil_view,
|
||||||
.mtl_force_managed_storage_mode = 1,
|
.mtl_force_managed_storage_mode = 1,
|
||||||
*/ .logger = {
|
.logger = {
|
||||||
.func = sg_logging,
|
.func = sg_logging,
|
||||||
.user_data = NULL,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
.buffer_pool_size = 1024,
|
.buffer_pool_size = 1024,
|
||||||
.context.sample_count = 1,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
sg_trace_hooks hh = sg_install_trace_hooks(&hooks);
|
sg_trace_hooks hh = sg_install_trace_hooks(&hooks);
|
||||||
|
@ -267,7 +305,8 @@ void render_init() {
|
||||||
[1].format = SG_VERTEXFORMAT_FLOAT2
|
[1].format = SG_VERTEXFORMAT_FLOAT2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.colors[0].pixel_format = SG_PIXELFORMAT_RGBA8
|
.colors[0].pixel_format = SG_PIXELFORMAT_RGBA8,
|
||||||
|
.label = "gif pipe",
|
||||||
});
|
});
|
||||||
|
|
||||||
crt_post.pipe = sg_make_pipeline(&(sg_pipeline_desc){
|
crt_post.pipe = sg_make_pipeline(&(sg_pipeline_desc){
|
||||||
|
@ -277,7 +316,8 @@ void render_init() {
|
||||||
[0].format = SG_VERTEXFORMAT_FLOAT2,
|
[0].format = SG_VERTEXFORMAT_FLOAT2,
|
||||||
[1].format = SG_VERTEXFORMAT_FLOAT2
|
[1].format = SG_VERTEXFORMAT_FLOAT2
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
.label = "crt post pipeline",
|
||||||
});
|
});
|
||||||
|
|
||||||
crt_post.img = sg_make_image(&(sg_image_desc){
|
crt_post.img = sg_make_image(&(sg_image_desc){
|
||||||
|
@ -298,6 +338,7 @@ void render_init() {
|
||||||
crt_post.pass = sg_make_pass(&(sg_pass_desc){
|
crt_post.pass = sg_make_pass(&(sg_pass_desc){
|
||||||
.color_attachments[0].image = crt_post.img,
|
.color_attachments[0].image = crt_post.img,
|
||||||
.depth_stencil_attachment.image = crt_post.depth_img,
|
.depth_stencil_attachment.image = crt_post.depth_img,
|
||||||
|
.label = "crt post pass",
|
||||||
});
|
});
|
||||||
|
|
||||||
#if defined SOKOL_GLCORE33 || defined SOKOL_GLES3
|
#if defined SOKOL_GLCORE33 || defined SOKOL_GLES3
|
||||||
|
@ -342,6 +383,7 @@ void render_init() {
|
||||||
|
|
||||||
crt_post.bind.fs.images[0] = crt_post.img;
|
crt_post.bind.fs.images[0] = crt_post.img;
|
||||||
crt_post.bind.fs.samplers[0] = sg_make_sampler(&(sg_sampler_desc){});
|
crt_post.bind.fs.samplers[0] = sg_make_sampler(&(sg_sampler_desc){});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
sg_image_desc shadow_desc = {
|
sg_image_desc shadow_desc = {
|
||||||
.render_target = true,
|
.render_target = true,
|
||||||
|
@ -350,7 +392,7 @@ void render_init() {
|
||||||
.pixel_format = SG_PIXELFORMAT_R32F,
|
.pixel_format = SG_PIXELFORMAT_R32F,
|
||||||
};
|
};
|
||||||
sg_image depth_img = sg_make_image(&shadow_desc);
|
sg_image depth_img = sg_make_image(&shadow_desc);
|
||||||
shadow_desc.pixel_format = SG_PIXELFORMAT_DEPTH;
|
shadow_desc.pixel_format = sapp_depth_format();
|
||||||
ddimg = sg_make_image(&shadow_desc);
|
ddimg = sg_make_image(&shadow_desc);
|
||||||
|
|
||||||
sg_shadow.pass = sg_make_pass(&(sg_pass_desc){
|
sg_shadow.pass = sg_make_pass(&(sg_pass_desc){
|
||||||
|
@ -373,7 +415,7 @@ void render_init() {
|
||||||
.depth = {
|
.depth = {
|
||||||
.compare = SG_COMPAREFUNC_LESS_EQUAL,
|
.compare = SG_COMPAREFUNC_LESS_EQUAL,
|
||||||
.write_enabled = true,
|
.write_enabled = true,
|
||||||
.pixel_format = SG_PIXELFORMAT_DEPTH
|
.pixel_format = sapp_depth_format()
|
||||||
},
|
},
|
||||||
.colors[0].pixel_format = SG_PIXELFORMAT_R32F,
|
.colors[0].pixel_format = SG_PIXELFORMAT_R32F,
|
||||||
.index_type = SG_INDEXTYPE_UINT16,
|
.index_type = SG_INDEXTYPE_UINT16,
|
||||||
|
@ -389,11 +431,12 @@ void render_winsize()
|
||||||
sg_destroy_image(crt_post.img);
|
sg_destroy_image(crt_post.img);
|
||||||
sg_destroy_image(crt_post.depth_img);
|
sg_destroy_image(crt_post.depth_img);
|
||||||
sg_destroy_pass(crt_post.pass);
|
sg_destroy_pass(crt_post.pass);
|
||||||
|
|
||||||
crt_post.img = sg_make_image(&(sg_image_desc){
|
crt_post.img = sg_make_image(&(sg_image_desc){
|
||||||
.render_target = true,
|
.render_target = true,
|
||||||
.width = mainwin.width,
|
.width = mainwin.width,
|
||||||
.height = mainwin.height,
|
.height = mainwin.height,
|
||||||
|
.label = "crt img resize",
|
||||||
});
|
});
|
||||||
|
|
||||||
crt_post.depth_img = sg_make_image(&(sg_image_desc){
|
crt_post.depth_img = sg_make_image(&(sg_image_desc){
|
||||||
|
@ -401,11 +444,13 @@ void render_winsize()
|
||||||
.width = mainwin.width,
|
.width = mainwin.width,
|
||||||
.height = mainwin.height,
|
.height = mainwin.height,
|
||||||
.pixel_format = SG_PIXELFORMAT_DEPTH,
|
.pixel_format = SG_PIXELFORMAT_DEPTH,
|
||||||
|
.label = "crt depth resize",
|
||||||
});
|
});
|
||||||
|
|
||||||
crt_post.pass = sg_make_pass(&(sg_pass_desc){
|
crt_post.pass = sg_make_pass(&(sg_pass_desc){
|
||||||
.color_attachments[0].image = crt_post.img,
|
.color_attachments[0].image = crt_post.img,
|
||||||
.depth_stencil_attachment.image = crt_post.depth_img,
|
.depth_stencil_attachment.image = crt_post.depth_img,
|
||||||
|
.label = "crt pass resize",
|
||||||
});
|
});
|
||||||
|
|
||||||
crt_post.bind.fs.images[0] = crt_post.img;
|
crt_post.bind.fs.images[0] = crt_post.img;
|
||||||
|
|
|
@ -117,7 +117,6 @@ void sprite_io(struct sprite *sprite, FILE *f, int read) {
|
||||||
void sprite_draw_all() {
|
void sprite_draw_all() {
|
||||||
sg_apply_pipeline(pip_sprite);
|
sg_apply_pipeline(pip_sprite);
|
||||||
sg_apply_uniforms(SG_SHADERSTAGE_VS, 0, SG_RANGE_REF(projection));
|
sg_apply_uniforms(SG_SHADERSTAGE_VS, 0, SG_RANGE_REF(projection));
|
||||||
|
|
||||||
static struct sprite **layers[5];
|
static struct sprite **layers[5];
|
||||||
|
|
||||||
for (int i = 0; i < 5; i++)
|
for (int i = 0; i < 5; i++)
|
||||||
|
@ -154,11 +153,11 @@ void sprite_initialize() {
|
||||||
[2].format = SG_VERTEXFORMAT_UBYTE4N}},
|
[2].format = SG_VERTEXFORMAT_UBYTE4N}},
|
||||||
.primitive_type = SG_PRIMITIVETYPE_TRIANGLE_STRIP,
|
.primitive_type = SG_PRIMITIVETYPE_TRIANGLE_STRIP,
|
||||||
.label = "sprite pipeline",
|
.label = "sprite pipeline",
|
||||||
/* .depth = {
|
.depth = {
|
||||||
.write_enabled = true,
|
.write_enabled = true,
|
||||||
.compare = SG_COMPAREFUNC_LESS_EQUAL
|
.compare = SG_COMPAREFUNC_LESS_EQUAL,
|
||||||
|
.pixel_format = SG_PIXELFORMAT_DEPTH
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
});
|
});
|
||||||
|
|
||||||
bind_sprite.vertex_buffers[0] = sg_make_buffer(&(sg_buffer_desc){
|
bind_sprite.vertex_buffers[0] = sg_make_buffer(&(sg_buffer_desc){
|
||||||
|
|
24
source/engine/thirdparty/sokol/sokol_gfx_ext.h
vendored
24
source/engine/thirdparty/sokol/sokol_gfx_ext.h
vendored
|
@ -164,17 +164,8 @@ static void _sg_d3d11_query_image_pixels(_sg_image_t* img, void* pixels) {
|
||||||
D3D11_MAPPED_SUBRESOURCE msr = {.pData = NULL};
|
D3D11_MAPPED_SUBRESOURCE msr = {.pData = NULL};
|
||||||
hr = _sg_d3d11_Map(_sg.d3d11.ctx, (ID3D11Resource*)staging_tex, 0, D3D11_MAP_READ, 0, &msr);
|
hr = _sg_d3d11_Map(_sg.d3d11.ctx, (ID3D11Resource*)staging_tex, 0, D3D11_MAP_READ, 0, &msr);
|
||||||
SOKOL_ASSERT(SUCCEEDED(hr));
|
SOKOL_ASSERT(SUCCEEDED(hr));
|
||||||
|
memcpy(pixels, msr.pData, img->cmn.width * img->cmn.height * 4);
|
||||||
// copy the data into the desired buffer, converting pixels to the desired format at the same time
|
|
||||||
/* int res = SDL_ConvertPixels(
|
|
||||||
img->cmn.width, img->cmn.height,
|
|
||||||
_sg_d3d11_dxgi_format_to_sdl_pixel_format(staging_desc.Format),
|
|
||||||
msr.pData, msr.RowPitch,
|
|
||||||
SDL_PIXELFORMAT_RGBA32,
|
|
||||||
pixels, img->cmn.width * 4);
|
|
||||||
SOKOL_ASSERT(res == 0);
|
|
||||||
_SOKOL_UNUSED(res);
|
|
||||||
*/
|
|
||||||
// unmap the texture
|
// unmap the texture
|
||||||
_sg_d3d11_Unmap(_sg.d3d11.ctx, (ID3D11Resource*)staging_tex, 0);
|
_sg_d3d11_Unmap(_sg.d3d11.ctx, (ID3D11Resource*)staging_tex, 0);
|
||||||
|
|
||||||
|
@ -231,16 +222,7 @@ static void _sg_d3d11_query_pixels(int x, int y, int w, int h, bool origin_top_l
|
||||||
hr = _sg_d3d11_Map(_sg.d3d11.ctx, (ID3D11Resource*)staging_tex, 0, D3D11_MAP_READ, 0, &msr);
|
hr = _sg_d3d11_Map(_sg.d3d11.ctx, (ID3D11Resource*)staging_tex, 0, D3D11_MAP_READ, 0, &msr);
|
||||||
SOKOL_ASSERT(SUCCEEDED(hr));
|
SOKOL_ASSERT(SUCCEEDED(hr));
|
||||||
|
|
||||||
// copy the data into the desired buffer, converting pixels to the desired format at the same time
|
memcpy(pixels, msr.pData, w * h * 4);
|
||||||
/* int res = SDL_ConvertPixels(
|
|
||||||
w, h,
|
|
||||||
_sg_d3d11_dxgi_format_to_sdl_pixel_format(staging_desc.Format),
|
|
||||||
msr.pData, msr.RowPitch,
|
|
||||||
SDL_PIXELFORMAT_RGBA32,
|
|
||||||
pixels, w * 4);
|
|
||||||
SOKOL_ASSERT(res == 0);
|
|
||||||
_SOKOL_UNUSED(res);
|
|
||||||
*/
|
|
||||||
// unmap the texture
|
// unmap the texture
|
||||||
_sg_d3d11_Unmap(_sg.d3d11.ctx, (ID3D11Resource*)staging_tex, 0);
|
_sg_d3d11_Unmap(_sg.d3d11.ctx, (ID3D11Resource*)staging_tex, 0);
|
||||||
|
|
||||||
|
|
4479
source/engine/thirdparty/sokol/sokol_gfx_imgui.h
vendored
4479
source/engine/thirdparty/sokol/sokol_gfx_imgui.h
vendored
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue