|
@@ -4249,6 +4249,18 @@ SOKOL_GFX_API_DECL sg_sampler_desc sg_query_sampler_defaults(const sg_sampler_de
|
|
|
SOKOL_GFX_API_DECL sg_shader_desc sg_query_shader_defaults(const sg_shader_desc* desc);
|
|
|
SOKOL_GFX_API_DECL sg_pipeline_desc sg_query_pipeline_defaults(const sg_pipeline_desc* desc);
|
|
|
SOKOL_GFX_API_DECL sg_attachments_desc sg_query_attachments_defaults(const sg_attachments_desc* desc);
|
|
|
+// assorted query functions
|
|
|
+SOKOL_GFX_API_DECL size_t sg_query_buffer_size(sg_buffer buf);
|
|
|
+SOKOL_GFX_API_DECL sg_buffer_type sg_query_buffer_type(sg_buffer buf);
|
|
|
+SOKOL_GFX_API_DECL sg_usage sg_query_buffer_usage(sg_buffer buf);
|
|
|
+SOKOL_GFX_API_DECL sg_image_type sg_query_image_type(sg_image img);
|
|
|
+SOKOL_GFX_API_DECL int sg_query_image_width(sg_image img);
|
|
|
+SOKOL_GFX_API_DECL int sg_query_image_height(sg_image img);
|
|
|
+SOKOL_GFX_API_DECL int sg_query_image_num_slices(sg_image img);
|
|
|
+SOKOL_GFX_API_DECL int sg_query_image_num_mipmaps(sg_image img);
|
|
|
+SOKOL_GFX_API_DECL sg_pixel_format sg_query_image_pixelformat(sg_image img);
|
|
|
+SOKOL_GFX_API_DECL sg_usage sg_query_image_usage(sg_image img);
|
|
|
+SOKOL_GFX_API_DECL int sg_query_image_sample_count(sg_image img);
|
|
|
|
|
|
// separate resource allocation and initialization (for async setup)
|
|
|
SOKOL_GFX_API_DECL sg_buffer sg_alloc_buffer(void);
|
|
@@ -19228,6 +19240,33 @@ SOKOL_API_IMPL sg_buffer_desc sg_query_buffer_desc(sg_buffer buf_id) {
|
|
|
return desc;
|
|
|
}
|
|
|
|
|
|
+SOKOL_API_IMPL size_t sg_query_buffer_size(sg_buffer buf_id) {
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ const _sg_buffer_t* buf = _sg_lookup_buffer(&_sg.pools, buf_id.id);
|
|
|
+ if (buf) {
|
|
|
+ return (size_t)buf->cmn.size;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+SOKOL_API_IMPL sg_buffer_type sg_query_buffer_type(sg_buffer buf_id) {
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ const _sg_buffer_t* buf = _sg_lookup_buffer(&_sg.pools, buf_id.id);
|
|
|
+ if (buf) {
|
|
|
+ return buf->cmn.type;
|
|
|
+ }
|
|
|
+ return _SG_BUFFERTYPE_DEFAULT;
|
|
|
+}
|
|
|
+
|
|
|
+SOKOL_API_IMPL sg_usage sg_query_buffer_usage(sg_buffer buf_id) {
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ const _sg_buffer_t* buf = _sg_lookup_buffer(&_sg.pools, buf_id.id);
|
|
|
+ if (buf) {
|
|
|
+ return buf->cmn.usage;
|
|
|
+ }
|
|
|
+ return _SG_USAGE_DEFAULT;
|
|
|
+}
|
|
|
+
|
|
|
SOKOL_API_IMPL sg_image_desc sg_query_image_desc(sg_image img_id) {
|
|
|
SOKOL_ASSERT(_sg.valid);
|
|
|
sg_image_desc desc;
|
|
@@ -19247,6 +19286,79 @@ SOKOL_API_IMPL sg_image_desc sg_query_image_desc(sg_image img_id) {
|
|
|
return desc;
|
|
|
}
|
|
|
|
|
|
+SOKOL_API_IMPL sg_image_type sg_query_image_type(sg_image img_id) {
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ const _sg_image_t* img = _sg_lookup_image(&_sg.pools, img_id.id);
|
|
|
+ if (img) {
|
|
|
+ return img->cmn.type;
|
|
|
+ }
|
|
|
+ return _SG_IMAGETYPE_DEFAULT;
|
|
|
+}
|
|
|
+
|
|
|
+SOKOL_API_IMPL int sg_query_image_width(sg_image img_id) {
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ const _sg_image_t* img = _sg_lookup_image(&_sg.pools, img_id.id);
|
|
|
+ if (img) {
|
|
|
+ return img->cmn.width;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+SOKOL_API_IMPL int sg_query_image_height(sg_image img_id) {
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ const _sg_image_t* img = _sg_lookup_image(&_sg.pools, img_id.id);
|
|
|
+ if (img) {
|
|
|
+ return img->cmn.height;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+SOKOL_API_IMPL int sg_query_image_num_slices(sg_image img_id) {
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ const _sg_image_t* img = _sg_lookup_image(&_sg.pools, img_id.id);
|
|
|
+ if (img) {
|
|
|
+ return img->cmn.num_slices;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+SOKOL_API_IMPL int sg_query_image_num_mipmaps(sg_image img_id) {
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ const _sg_image_t* img = _sg_lookup_image(&_sg.pools, img_id.id);
|
|
|
+ if (img) {
|
|
|
+ return img->cmn.num_mipmaps;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+SOKOL_API_IMPL sg_pixel_format sg_query_image_pixelformat(sg_image img_id) {
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ const _sg_image_t* img = _sg_lookup_image(&_sg.pools, img_id.id);
|
|
|
+ if (img) {
|
|
|
+ return img->cmn.pixel_format;
|
|
|
+ }
|
|
|
+ return _SG_PIXELFORMAT_DEFAULT;
|
|
|
+}
|
|
|
+
|
|
|
+SOKOL_API_IMPL sg_usage sg_query_image_usage(sg_image img_id) {
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ const _sg_image_t* img = _sg_lookup_image(&_sg.pools, img_id.id);
|
|
|
+ if (img) {
|
|
|
+ return img->cmn.usage;
|
|
|
+ }
|
|
|
+ return _SG_USAGE_DEFAULT;
|
|
|
+}
|
|
|
+
|
|
|
+SOKOL_API_IMPL int sg_query_image_sample_count(sg_image img_id) {
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ SOKOL_ASSERT(_sg.valid);
|
|
|
+ const _sg_image_t* img = _sg_lookup_image(&_sg.pools, img_id.id);
|
|
|
+ if (img) {
|
|
|
+ return img->cmn.sample_count;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
SOKOL_API_IMPL sg_sampler_desc sg_query_sampler_desc(sg_sampler smp_id) {
|
|
|
SOKOL_ASSERT(_sg.valid);
|
|
|
sg_sampler_desc desc;
|