Exemplo n.º 1
0
 public void Draw(IGL10 gl)
 {
     gl.GlFrontFace(GL10.GlCw);
     gl.GlVertexPointer(3, GL10.GlFixed, 0, mVertexBuffer);
     gl.GlColorPointer(4, GL10.GlFixed, 0, mColorBuffer);
     gl.GlDrawElements(GL10.GlTriangles, 36, GL10.GlUnsignedByte, mIndexBuffer);
 }
 public void OnDrawFrame(IGL10 gl)
 {
     // 清除屏幕缓存和深度缓存
     gl.GlClear(GL10.GlColorBufferBit | GL10.GlDepthBufferBit);
     // 启用顶点坐标数据
     gl.GlEnableClientState(GL10.GlVertexArray);
     // 启用贴图坐标数组数据
     gl.GlEnableClientState(GL10.GlTextureCoordArray);   // ①
                                                         // 设置当前矩阵模式为模型视图。
     gl.GlMatrixMode(GL10.GlModelview);
     gl.GlLoadIdentity();
     // 把绘图中心移入屏幕2个单位
     gl.GlTranslatef(0f, 0.0f, -2.0f);
     // 旋转图形
     gl.GlRotatef(ma.angleY, 0, 1, 0);
     gl.GlRotatef(ma.angleX, 1, 0, 0);
     // 设置顶点的位置数据
     gl.GlVertexPointer(3, GL10.GlFloat, 0, cubeVerticesBuffer);
     // 设置贴图的坐标数据
     gl.GlTexCoordPointer(2, GL10.GlFloat, 0, cubeTexturesBuffer); // ②
                                                                   // 执行纹理贴图
     gl.GlBindTexture(GL10.GlTexture2d, texture);                  // ③
                                                                   // 按cubeFacetsBuffer指定的面绘制三角形
     gl.GlDrawElements(GL10.GlTriangles, cubeFacetsBuffer.Remaining(),
                       GL10.GlUnsignedByte, cubeFacetsBuffer);
     // 绘制结束
     gl.GlFinish();
     // 禁用顶点、纹理坐标数组
     gl.GlDisableClientState(GL10.GlVertexArray);
     gl.GlDisableClientState(GL10.GlTextureCoordArray);
     // 递增角度值以便每次以不同角度绘制
 }
Exemplo n.º 3
0
        public void Draw(int primitiveType, int offset, int numVertices)
        {
            IGL10 gl = _glGraphics.GL10;


            if (_indices != null)
            {
                _indices.Position(offset);
                gl.GlDrawElements(primitiveType, numVertices, GL10.GlUnsignedShort, _indices);
            }
            else
            {
                gl.GlDrawArrays(primitiveType, offset, numVertices);
            }
        }
Exemplo n.º 4
0
      public void Draw(IGL10 gl)
      {
         gl.GlFrontFace(IGL10Constants.GL_CW);

         gl.GlVertexPointer(3, IGL10Constants.GL_FLOAT, 0, mVertexBuffer);
         gl.GlColorPointer(4, IGL10Constants.GL_FLOAT, 0, mColorBuffer);

         gl.GlEnableClientState(IGL10Constants.GL_VERTEX_ARRAY);
         gl.GlEnableClientState(IGL10Constants.GL_COLOR_ARRAY);

         // draw all 36 triangles
         gl.GlDrawElements(IGL10Constants.GL_TRIANGLES, 36, IGL10Constants.GL_UNSIGNED_BYTE,
                           mIndexBuffer);

         gl.GlDisableClientState(IGL10Constants.GL_VERTEX_ARRAY);
         gl.GlDisableClientState(IGL10Constants.GL_COLOR_ARRAY);
      }
Exemplo n.º 5
0
        public void Draw(IGL10 gl)
        {
            gl.GlFrontFace(IGL10Constants.GL_CW);

            gl.GlVertexPointer(3, IGL10Constants.GL_FLOAT, 0, mVertexBuffer);
            gl.GlColorPointer(4, IGL10Constants.GL_FLOAT, 0, mColorBuffer);

            gl.GlEnableClientState(IGL10Constants.GL_VERTEX_ARRAY);
            gl.GlEnableClientState(IGL10Constants.GL_COLOR_ARRAY);

            // draw all 36 triangles
            gl.GlDrawElements(IGL10Constants.GL_TRIANGLES, 36, IGL10Constants.GL_UNSIGNED_BYTE,
                              mIndexBuffer);

            gl.GlDisableClientState(IGL10Constants.GL_VERTEX_ARRAY);
            gl.GlDisableClientState(IGL10Constants.GL_COLOR_ARRAY);
        }
        public override void Present(float deltaTime)
        {
            IGL10 gl = _glGraphics.GL10;

            gl.GlViewport(0, 0, _glGraphics.Width, _glGraphics.Height);
            gl.GlClear(GL10.GlColorBufferBit);
            gl.GlMatrixMode(GL10.GlProjection);
            gl.GlLoadIdentity();
            gl.GlOrthof(0, 540, 0, 960, 1, -1);
            gl.GlEnable(GL10.GlTexture2d);

            _texture.BindTexture();

            gl.GlEnableClientState(GL10.GlVertexArray);
            gl.GlEnableClientState(GL10.GlTextureCoordArray);
            _vertices.Position(0);
            gl.GlVertexPointer(2, GL10.GlFloat, _vertexSize, _vertices);
            _vertices.Position(2);
            gl.GlTexCoordPointer(2, GL10.GlFloat, _vertexSize, _vertices);
            gl.GlDrawElements(GL10.GlTriangles, 6, GL10.GlUnsignedShort, _indices);
        }
Exemplo n.º 7
0
		public void Draw (IGL10 gl)
		{
			gl.GlFrontFace (GL10.GlCw);
			gl.GlVertexPointer (3, GL10.GlFixed, 0, mVertexBuffer);
			gl.GlColorPointer (4, GL10.GlFixed, 0, mColorBuffer);
			gl.GlDrawElements (GL10.GlTriangles, 36, GL10.GlUnsignedByte, mIndexBuffer);
		}