aboutsummaryrefslogtreecommitdiff
path: root/tests/functional/sokol_gfx_test.c
diff options
context:
space:
mode:
authorAndre Weissflog <floooh@gmail.com>2023-02-19 14:01:33 +0100
committerAndre Weissflog <floooh@gmail.com>2023-02-19 14:01:33 +0100
commita0a7c38f5bfb1ed14d5d6b824ab919df023acb1d (patch)
tree4bf12126a68551522b9fd9b20a3acc804d4aaa18 /tests/functional/sokol_gfx_test.c
parent144ae664ef1c48a32d7314e142c19d2ab7920d6d (diff)
sokol_gfx.h: implement sg_query_image_desc()
Diffstat (limited to 'tests/functional/sokol_gfx_test.c')
-rw-r--r--tests/functional/sokol_gfx_test.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/functional/sokol_gfx_test.c b/tests/functional/sokol_gfx_test.c
index 1f88c60e..a9e0d0e5 100644
--- a/tests/functional/sokol_gfx_test.c
+++ b/tests/functional/sokol_gfx_test.c
@@ -856,6 +856,76 @@ UTEST(sokol_gfx, query_buffer_desc) {
T(b2_desc.data.ptr == 0);
T(b2_desc.data.size == 0);
+ // invalid buffer (returns zeroed desc)
+ sg_buffer b3 = sg_make_buffer(&(sg_buffer_desc){
+ .size = 32,
+ .usage = SG_USAGE_STREAM,
+ .label = "bla",
+ });
+ sg_destroy_buffer(b3);
+ const sg_buffer_desc b3_desc = sg_query_buffer_desc(b3);
+ T(b3_desc.size == 0);
+ T(b3_desc.type == 0);
+ T(b3_desc.usage == 0);
+
+ sg_shutdown();
+}
+
+UTEST(sokol_gfx, query_image_desc) {
+ setup(&(sg_desc){0});
+
+ sg_image i0 = sg_make_image(&(sg_image_desc){
+ .width = 256,
+ .height = 512,
+ .pixel_format = SG_PIXELFORMAT_R8,
+ .mag_filter = SG_FILTER_LINEAR,
+ .wrap_v = SG_WRAP_CLAMP_TO_EDGE,
+ .usage = SG_USAGE_DYNAMIC,
+ .border_color = SG_BORDERCOLOR_OPAQUE_WHITE,
+ .max_anisotropy = 4,
+ .min_lod = 0.5f,
+ .max_lod = 0.75f,
+ });
+ const sg_image_desc i0_desc = sg_query_image_desc(i0);
+ T(i0_desc.type == SG_IMAGETYPE_2D);
+ T(i0_desc.render_target == false);
+ T(i0_desc.width == 256);
+ T(i0_desc.height == 512);
+ T(i0_desc.num_slices == 1);
+ T(i0_desc.num_mipmaps == 1);
+ T(i0_desc.usage == SG_USAGE_DYNAMIC);
+ T(i0_desc.pixel_format == SG_PIXELFORMAT_R8);
+ T(i0_desc.sample_count == 1);
+ T(i0_desc.min_filter == SG_FILTER_NEAREST);
+ T(i0_desc.mag_filter == SG_FILTER_LINEAR);
+ T(i0_desc.wrap_u == SG_WRAP_REPEAT);
+ T(i0_desc.wrap_v == SG_WRAP_CLAMP_TO_EDGE);
+ T(i0_desc.wrap_w == SG_WRAP_REPEAT);
+ T(i0_desc.border_color == SG_BORDERCOLOR_OPAQUE_WHITE);
+ T(i0_desc.max_anisotropy == 4);
+ T(i0_desc.min_lod == 0.5f);
+ T(i0_desc.max_lod == 0.75f);
+ T(i0_desc.data.subimage[0][0].ptr == 0);
+ T(i0_desc.data.subimage[0][0].size == 0);
+ T(i0_desc.gl_textures[0] == 0);
+ T(i0_desc.gl_texture_target == 0);
+ T(i0_desc.mtl_textures[0] == 0);
+ T(i0_desc.d3d11_texture == 0);
+ T(i0_desc.d3d11_shader_resource_view == 0);
+ T(i0_desc.wgpu_texture == 0);
+
+ sg_destroy_image(i0);
+ const sg_image_desc i1_desc = sg_query_image_desc(i0);
+ T(i1_desc.type == 0);
+ T(i1_desc.render_target == false);
+ T(i1_desc.width == 0);
+ T(i1_desc.height == 0);
+ T(i1_desc.num_slices == 0);
+ T(i1_desc.num_mipmaps == 0);
+ T(i1_desc.usage == 0);
+ T(i1_desc.pixel_format == 0);
+ T(i1_desc.sample_count == 0);
+
sg_shutdown();
}