Пример #1
0
        unsafe void EncodeText(bgfx.Encoder *encoder, ushort viewId, ref MeshBGFX mesh, ref float4x4 tx,
                               ref TextMaterialBGFX mat, int startIndex, int indexCount, uint depth, byte flipCulling)
        {
            bgfx.set_state(mat.state, 0);

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

            mesh.SetForSubmit(encoder, startIndex, indexCount);
            // material uniforms setup
            fixed(TextMaterialBGFX *pmat = &mat)
            {
                bgfx.encoder_set_uniform(encoder, m_TextShader.m_clipRect, &pmat->constClipRect, 1);
                bgfx.encoder_set_uniform(encoder, m_TextShader.m_maskSoftness, &pmat->constMaskSoftness, 1);
            }

            bgfx.encoder_set_texture(encoder, 0, m_TextShader.m_mainTex, mat.texAtlas, UInt32.MaxValue);
            bgfx.encoder_submit(encoder, viewId, m_TextShader.m_prog, depth, (byte)bgfx.DiscardFlags.All);
        }
Пример #2
0
 unsafe void SubmitTextDirect(ushort viewId, ref MeshBGFX mesh, ref float4x4 tx, ref TextMaterialBGFX mat,
                              int startIndex, int indexCount, uint depth, byte flipCulling)
 {
     bgfx.Encoder *encoder = bgfx.encoder_begin(false);
     EncodeText(encoder, viewId, ref mesh, ref tx, ref mat, startIndex, indexCount, depth, flipCulling);
     bgfx.encoder_end(encoder);
 }