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); }
public static unsafe void EndSubmit(bgfx.Encoder *encoder) { bgfx.encoder_end(encoder); }