public override void Draw() { CCDrawManager.BlendFunc(m_tBlendFunc); CCDrawManager.BindTexture(m_pTexture); CCDrawManager.DrawPrimitives(PrimitiveType.TriangleStrip, m_pVertices, 0, m_uNuPoints * 2 - 2); }
public override void Draw() { Debug.Assert(m_pobBatchNode == null); CCDrawManager.BlendFunc(m_sBlendFunc); CCDrawManager.BindTexture(Texture); CCDrawManager.DrawQuad(ref m_sQuad); }
// overriding draw method public override void Draw() { Debug.Assert(m_pBatchNode == null, "draw should not be called when added to a particleBatchNode"); //Debug.Assert(m_uParticleIdx == m_uParticleCount, "Abnormal error in particle quad"); //updateQuadsWithParticles(); CCDrawManager.BindTexture(m_pTexture); CCDrawManager.BlendFunc(m_tBlendFunc); CCDrawManager.DrawQuads(m_pQuads, 0, m_uParticleCount); }
/// <summary> /// enables/disables OpenGL alpha blending /// </summary> /// <param name="bOn"></param> public void SetAlphaBlending(bool bOn) { if (bOn) { CCDrawManager.BlendFunc(CCBlendFunc.AlphaBlend); } else { CCDrawManager.BlendFunc(new CCBlendFunc(CCOGLES.GL_ONE, CCOGLES.GL_ZERO)); } }
public override void Draw() { if (TextureAtlas.TotalQuads == 0) { return; } CCDrawManager.BlendFunc(m_tBlendFunc); TextureAtlas.DrawQuads(); }
public override void Draw() { if (m_pVertexData == null || m_pSprite == null) { return; } CCDrawManager.BindTexture(Sprite.Texture); CCDrawManager.BlendFunc(m_pSprite.BlendFunc); var count = (m_nVertexDataCount - 2); if (s_pIndexes == null || s_pIndexes.Length < count * 3) { s_pIndexes = new short[count * 3]; } if (m_eType == CCProgressTimerType.Radial) { //FAN for (int i = 0; i < count; i++) { var i3 = i * 3; s_pIndexes[i3 + 0] = 0; s_pIndexes[i3 + 1] = (short)(i + 1); s_pIndexes[i3 + 2] = (short)(i + 2); } CCDrawManager.DrawIndexedPrimitives(PrimitiveType.TriangleList, m_pVertexData, 0, m_nVertexDataCount, s_pIndexes, 0, count); } else if (m_eType == CCProgressTimerType.Bar) { //TRIANGLE STRIP for (int i = 0; i < count; i++) { var i3 = i * 3; s_pIndexes[i3 + 0] = (short)(i + 0); s_pIndexes[i3 + 1] = (short)(i + 1); s_pIndexes[i3 + 2] = (short)(i + 2); } if (!m_bReverseDirection) { CCDrawManager.DrawIndexedPrimitives(PrimitiveType.TriangleList, m_pVertexData, 0, m_nVertexDataCount, s_pIndexes, 0, count); } else { CCDrawManager.DrawIndexedPrimitives(PrimitiveType.TriangleList, m_pVertexData, 0, m_nVertexDataCount, s_pIndexes, 0, count); } } }
public override void Draw() { if (m_bDirty) { //TODO: Set vertices to buffer m_bDirty = false; } CCDrawManager.TextureEnabled = false; CCDrawManager.BlendFunc(m_sBlendFunc); CCDrawManager.DrawPrimitives(PrimitiveType.TriangleList, m_pVertices.Elements, 0, m_pVertices.Count / 3); }
public override void Draw() { Debug.Assert(m_pobBatchNode == null); CCDrawManager.BlendFunc(m_sBlendFunc); CCDrawManager.BindTexture(Texture); CCDrawManager.DrawQuad(ref m_sQuad); /* * var sb = DrawManager.spriteBatch; * sb.Begin(SpriteSortMode.Deferred, null, null, null, null, null, DrawManager.basicEffect.World); * sb.Draw(Texture.getTexture2D(), new Vector2(0, 0), new Color(this.Color.r, this.Color.g, this.Color.b, Opacity)); * sb.End(); */ }
public override void Draw() { if (m_pVertexBuffer == null) { m_pVertexBuffer = new VertexBuffer(CCDrawManager.graphicsDevice, typeof(VertexPositionColor), 4, BufferUsage.WriteOnly); } if (m_bChanged) { m_pVertexBuffer.SetData(m_pVertices); m_bChanged = false; } CCDrawManager.BindTexture((CCTexture2D)null); CCDrawManager.BlendFunc(m_tBlendFunc); CCDrawManager.DrawQuadsBuffer(m_pVertexBuffer, 0, 1); }
public override void Draw() { // Optimization: Fast Dispatch if (m_pobTextureAtlas.TotalQuads == 0) { return; } if (m_pChildren != null && m_pChildren.count > 0) { CCNode[] elements = m_pChildren.Elements; for (int i = 0, count = m_pChildren.count; i < count; i++) { ((CCSprite)elements[i]).UpdateTransform(); } } CCDrawManager.BlendFunc(m_blendFunc); m_pobTextureAtlas.DrawQuads(); }
public override void Draw() { CCDrawManager.BlendFunc(CCBlendFunc.AlphaBlend); CCDrawManager.BindTexture(Texture); CCDrawManager.DrawQuad(ref m_sQuad); // /* // CC_NODE_DRAW_SETUP(); // ccGLEnableVertexAttribs(kCCVertexAttribFlag_PosColorTex); // ccGLBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // getShaderProgram()->setUniformForModelViewProjectionMatrix(); // glActiveTexture(GL_TEXTURE0); // glBindTexture( GL_TEXTURE_2D, getTexture()->getName()); // glUniform1i(m_uTextureLocation, 0); // glActiveTexture(GL_TEXTURE1); // glBindTexture( GL_TEXTURE_2D, m_pMaskTexture->getName() ); // glUniform1i(m_uMaskLocation, 1); //#define kQuadSize sizeof(m_sQuad.bl) // long offset = (long)&m_sQuad; // // vertex // int diff = offsetof( ccV3F_C4B_T2F, vertices); // glVertexAttribPointer(kCCVertexAttrib_Position, 3, GL_FLOAT, GL_FALSE, kQuadSize, (void*) (offset + diff)); // // texCoods // diff = offsetof( ccV3F_C4B_T2F, texCoords); // glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, kQuadSize, (void*)(offset + diff)); // // color // diff = offsetof( ccV3F_C4B_T2F, colors); // glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, kQuadSize, (void*)(offset + diff)); // glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); // glActiveTexture(GL_TEXTURE0); // */ }
public override void Draw() { if (m_bDirty) { m_bDirty = false; if (FilterPrimitivesByAlpha) { _toDraw = m_pVertices.Elements.Where(x => x.Color.A > 0).ToArray(); } else { _toDraw = m_pVertices.Elements; } } if (_toDraw != null) { CCDrawManager.TextureEnabled = false; CCDrawManager.BlendFunc(m_sBlendFunc); CCDrawManager.DrawPrimitives(PrimitiveType.TriangleList, _toDraw, 0, _toDraw.Length / 3); } }
public override void Draw() { //CC_PROFILER_STOP("CCParticleBatchNode - draw"); if (TextureAtlas.TotalQuads == 0) { return; } for (int i = 0; i < m_pChildren.count; i++) { //((CCParticleSystem) m_pChildren.Elements[i]).updateQuadsWithParticles(); } //CC_NODE_DRAW_SETUP(); //ccGLBlendFunc( m_tBlendFunc.src, m_tBlendFunc.dst ); CCDrawManager.BlendFunc(m_tBlendFunc); TextureAtlas.DrawQuads(); //CC_PROFILER_STOP("CCParticleBatchNode - draw"); }
public override void Draw() { CCDrawManager.TextureEnabled = false; CCDrawManager.BlendFunc(m_tBlendFunc); CCDrawManager.DrawPrimitives(PrimitiveType.TriangleStrip, m_pSquareVertices, 0, 2); }
// overriding draw method public override void Draw() { Debug.Assert(m_pBatchNode == null, "draw should not be called when added to a particleBatchNode"); //Debug.Assert(m_uParticleIdx == m_uParticleCount, "Abnormal error in particle quad"); //updateQuadsWithParticles(); CCDrawManager.BindTexture(m_pTexture); CCDrawManager.BlendFunc(m_tBlendFunc); CCDrawManager.DrawQuads(m_pQuads, 0, m_uParticleCount); /* * CC_NODE_DRAW_SETUP(); * * ccGLBindTexture2D(m_pTexture.Name); * ccGLBlendFunc(m_tBlendFunc.src, m_tBlendFunc.dst); * * #if CC_TEXTURE_ATLAS_USE_VAO * // * // Using VBO and VAO * // * glBindVertexArray( m_uVAOname ); * #if CC_REBIND_INDICES_BUFFER * glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_pBuffersVBO[1]); #endif * * glDrawElements(GL_TRIANGLES, (GLsizei) m_uParticleIdx*6, GL_UNSIGNED_SHORT, 0); * #if CC_REBIND_INDICES_BUFFER * glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); #endif * * glBindVertexArray( 0 ); * #else * // * // Using VBO without VAO * // * #define kQuadSize sizeof(m_pQuads[0].bl) * * ccGLEnableVertexAttribs(kCCVertexAttribFlag_PosColorTex); * * glBindBuffer(GL_ARRAY_BUFFER, m_pBuffersVBO[0]); * // vertices * glVertexAttribPointer(kCCVertexAttrib_Position, 3, GL_FLOAT, GL_FALSE, kQuadSize, * (GLvoid*) offsetof(ccV3F_C4B_T2F, vertices)); * // colors * glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, kQuadSize, * (GLvoid*) offsetof(ccV3F_C4B_T2F, colors)); * // tex coords * glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, kQuadSize, * (GLvoid*) offsetof(ccV3F_C4B_T2F, texCoords)); * * glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_pBuffersVBO[1]); * * glDrawElements(GL_TRIANGLES, (GLsizei) m_uParticleIdx * 6, GL_UNSIGNED_SHORT, 0); * * glBindBuffer(GL_ARRAY_BUFFER, 0); * glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); * #endif * CC_INCREMENT_GL_DRAWS(1); * CHECK_GL_ERROR_DEBUG(); */ }
public override void Draw() { CCDrawManager.BlendFunc(m_tBlendFunc); m_pTextureAtlas.DrawNumberOfQuads(m_uQuadsToDraw, 0); }
public override void Draw() { if (m_pVertexData == null || m_pSprite == null) { return; } CCDrawManager.BindTexture(Sprite.Texture); CCDrawManager.BlendFunc(m_pSprite.BlendFunc); var count = (m_nVertexDataCount - 2); if (s_pIndexes == null || s_pIndexes.Length < count * 3) { s_pIndexes = new short[count * 3]; } if (m_eType == CCProgressTimerType.Radial) { //FAN for (int i = 0; i < count; i++) { var i3 = i * 3; s_pIndexes[i3 + 0] = 0; s_pIndexes[i3 + 1] = (short)(i + 1); s_pIndexes[i3 + 2] = (short)(i + 2); } CCDrawManager.DrawIndexedPrimitives(PrimitiveType.TriangleList, m_pVertexData, 0, m_nVertexDataCount, s_pIndexes, 0, count); } else if (m_eType == CCProgressTimerType.Bar) { //TRIANGLE STRIP for (int i = 0; i < count; i++) { var i3 = i * 3; s_pIndexes[i3 + 0] = (short)(i + 0); s_pIndexes[i3 + 1] = (short)(i + 1); s_pIndexes[i3 + 2] = (short)(i + 2); } if (!m_bReverseDirection) { CCDrawManager.DrawIndexedPrimitives(PrimitiveType.TriangleList, m_pVertexData, 0, m_nVertexDataCount, s_pIndexes, 0, count); } else { CCDrawManager.DrawIndexedPrimitives(PrimitiveType.TriangleList, m_pVertexData, 0, m_nVertexDataCount, s_pIndexes, 0, count); } } /* * CC_NODE_DRAW_SETUP(); * * ccGLBlendFunc( m_pSprite->getBlendFunc().src, m_pSprite->getBlendFunc().dst ); * * ccGLEnableVertexAttribs(kCCVertexAttribFlag_PosColorTex ); * * ccGLBindTexture2D( m_pSprite->getTexture()->getName() ); * * glVertexAttribPointer( kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, sizeof(m_pVertexData[0]) , &m_pVertexData[0].vertices); * glVertexAttribPointer( kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, sizeof(m_pVertexData[0]), &m_pVertexData[0].texCoords); * glVertexAttribPointer( kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(m_pVertexData[0]), &m_pVertexData[0].colors); * * if(m_eType == kCCProgressTimerTypeRadial) * { * glDrawArrays(GL_TRIANGLE_FAN, 0, m_nVertexDataCount); * } * else if (m_eType == kCCProgressTimerTypeBar) * { * if (!m_bReverseDirection) * { * glDrawArrays(GL_TRIANGLE_STRIP, 0, m_nVertexDataCount); * } * else * { * glDrawArrays(GL_TRIANGLE_STRIP, 0, m_nVertexDataCount/2); * glDrawArrays(GL_TRIANGLE_STRIP, 4, m_nVertexDataCount/2); * // 2 draw calls * CC_INCREMENT_GL_DRAWS(1); * } * } * CC_INCREMENT_GL_DRAWS(1); */ }
public override void Draw() { CCDrawManager.BlendFunc(CCBlendFunc.AlphaBlend); CCDrawManager.BindTexture(Texture); CCDrawManager.DrawQuad(ref m_sQuad); }