Exemplo n.º 1
0
        public static unsafe void SubmitDrawInstruction(bgfx.Encoder *encoder, float4 color,
                                                        SpriteDefaultShader defaultShader, ushort viewId,
                                                        SpriteMeshCacheData spriteMesh, uint depth,
                                                        ref float4x4 transform)
        {
            bgfx.encoder_set_state(encoder, k_RenderStates, 0);

            bgfx.encoder_set_index_buffer(encoder, new bgfx.IndexBufferHandle {
                idx = spriteMesh.IndexBufferHandle
            }, (uint)0, (uint)spriteMesh.IndexCount);
            bgfx.encoder_set_vertex_buffer(encoder, 0, new bgfx.VertexBufferHandle {
                idx = spriteMesh.VertexBufferHandle
            }, 0, (uint)spriteMesh.VertexCount, spriteMesh.VertexLayoutHandle);

            fixed(float4x4 *p = &transform)
            bgfx.encoder_set_transform(encoder, p, 1);

            bgfx.encoder_set_uniform(encoder, defaultShader.TintColorHandle, &color, 1);

            bgfx.encoder_set_texture(encoder, 0, defaultShader.TexColorSamplerHandle, spriteMesh.TextureHandle, System.UInt32.MaxValue);
            bgfx.encoder_submit(encoder, viewId, defaultShader.ProgramHandle, depth, (byte)bgfx.DiscardFlags.All);
        }
Exemplo n.º 2
0
 public static unsafe void EndSubmit(bgfx.Encoder *encoder)
 {
     bgfx.encoder_end(encoder);
 }