示例#1
0
        public void QueryBufferDefaults()
        {
            var setupDesc = new sg_desc
            {
                pass_pool_size = 1
            };

            sg_setup(ref setupDesc);

            var bufferDesc = default(sg_buffer_desc);
            var desc       = sg_query_buffer_defaults(ref bufferDesc);

            Assert.True(desc.type == sg_buffer_type.SG_BUFFERTYPE_VERTEXBUFFER);
            Assert.True(desc.usage == sg_usage.SG_USAGE_IMMUTABLE);

            bufferDesc = new sg_buffer_desc
            {
                type = sg_buffer_type.SG_BUFFERTYPE_INDEXBUFFER
            };
            desc = sg_query_buffer_defaults(ref bufferDesc);

            Assert.True(desc.type == sg_buffer_type.SG_BUFFERTYPE_INDEXBUFFER);
            Assert.True(desc.usage == sg_usage.SG_USAGE_IMMUTABLE);

            bufferDesc = new sg_buffer_desc
            {
                usage = sg_usage.SG_USAGE_DYNAMIC
            };
            desc = sg_query_buffer_defaults(ref bufferDesc);

            Assert.True(desc.type == sg_buffer_type.SG_BUFFERTYPE_VERTEXBUFFER);
            Assert.True(desc.usage == sg_usage.SG_USAGE_DYNAMIC);

            sg_shutdown();
        }
示例#2
0
        public void GenerationCounter()
        {
            var setupDesc = new sg_desc
            {
                pass_pool_size = 1
            };

            sg_setup(ref setupDesc);

            var data = stackalloc float[4];

            data[0] = 1.0f;
            data[1] = 2.0f;
            data[2] = 3.0f;
            data[4] = 4.0f;

            for (var i = 0; i < 64; i++)
            {
                var desc = new sg_buffer_desc
                {
                    size    = sizeof(float) * 4,
                    content = data
                };

                var buffer = sg_make_buffer(ref desc);
                Assert.True(buffer.id != SG_INVALID_ID);

                var bufferState = sg_query_buffer_state(buffer);
                Assert.True(bufferState == sg_resource_state.SG_RESOURCESTATE_VALID);
                Assert.True(buffer.id >> 16 == (uint)(i + 1));
                sg_destroy_buffer(buffer);
                bufferState = sg_query_buffer_state(buffer);
                Assert.True(bufferState == sg_resource_state.SG_RESOURCESTATE_INVALID);
            }

            sg_shutdown();
        }
示例#3
0
 public static extern sg_buffer_desc sg_query_buffer_defaults([In] ref sg_buffer_desc desc);
示例#4
0
 public static extern void sg_init_buffer(sg_buffer buf_id, [In] ref sg_buffer_desc desc);
示例#5
0
 public static extern sg_buffer sg_make_buffer([In] ref sg_buffer_desc desc);