コード例 #1
0
        public void OnSurfaceChanged(IGL10 gl, int width, int height)
        {
            gl.GlViewport(0, 0, width, height);
            mViewportWidth  = width;
            mViewportHeight = height;

            float ratio = (float)width / height;

            mViewRect.Top    = 1.0f;
            mViewRect.Bottom = -1.0f;
            mViewRect.Left   = -ratio;
            mViewRect.Right  = ratio;
            UpdatePageRects();

            gl.GlMatrixMode(GL10.GlProjection);
            gl.GlLoadIdentity();
            if (USE_PERSPECTIVE_PROJECTION)
            {
                GLU.GluPerspective(gl, 20f, (float)width / height, .1f, 100f);
            }
            else
            {
                GLU.GluOrtho2D(gl, mViewRect.Left, mViewRect.Right,
                               mViewRect.Bottom, mViewRect.Top);
            }

            gl.GlMatrixMode(GL10.GlModelview);
            gl.GlLoadIdentity();
        }
コード例 #2
0
        public PO Map_to_Space(int x, int y)
        {
            util u1 = new util();

            unsafe
            {
                double *modelview  = stackalloc double[16];
                double *projection = stackalloc double[16];
                int *   viewport   = stackalloc int[4];
                PO      pf;
                double  z;
                pf = new PO();
                GLU.glGetDoublev(GLU.GL_MODELVIEW_MATRIX, modelview);
                GLU.glGetDoublev(GLU.GL_PROJECTION_MATRIX, projection);
                GLU.glGetIntegerv(GLU.GL_VIEWPORT, viewport);
                GLU.glReadPixels(x, y, 1, 1, GLU.GL_DEPTH_COMPONENT, GLU.GL_FLOAT, &z);
                double world_x, world_y, world_z;
                GLU.gluUnProject((double)x, (double)(viewport[3] - y - 1), 1,
                                 modelview, projection, viewport,
                                 &world_x, &world_y, &world_z);
                pf.x = (float)world_x;
                pf.y = (float)world_y;
                pf.z = 0;
                return(pf);
            }
        }
コード例 #3
0
        public void Update(Bitmap bm)
        {
            if (bm != null)
            {
                BitmapData bd = bm.LockBits(new Rectangle(0, 0, bm.Width, bm.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);

                if (bd.Stride != bd.Width * 4)
                {
                    throw new ApplicationException("Stride not a multiple of width");
                }

                unsafe
                {
                    uint tex = m_texture;
                    if (tex == 0)
                    {
                        OpenGL.glGenTextures(1, &tex);
                    }
                    m_texture = tex;

                    OpenGL.glBindTexture(OpenGL.GL_TEXTURE_2D, m_texture);
                    OpenGL.glTexParameteri(OpenGL.GL_TEXTURE_2D, OpenGL.GL_TEXTURE_MIN_FILTER, (int)OpenGL.GL_LINEAR_MIPMAP_LINEAR);
                    OpenGL.glTexParameteri(OpenGL.GL_TEXTURE_2D, OpenGL.GL_TEXTURE_MAG_FILTER, (int)OpenGL.GL_LINEAR_MIPMAP_LINEAR);
                    OpenGL.glPixelStorei(OpenGL.GL_UNPACK_ALIGNMENT, 1);

                    //OpenGL.glTexImage2D(OpenGL.GL_TEXTURE_2D, 0, (int)OpenGL.GL_RGBA8, (int)m_atlasWidth, (int)m_atlasHeight, 0, OpenGL.GL_BGRA_EXT, OpenGL.GL_UNSIGNED_BYTE, bd.Scan0.ToPointer());
                    GLU.gluBuild2DMipmaps(OpenGL.GL_TEXTURE_2D, (int)OpenGL.GL_RGBA8, (int)bm.Width, (int)bm.Height, OpenGL.GL_BGRA_EXT, OpenGL.GL_UNSIGNED_BYTE, bd.Scan0.ToPointer());
                }

                bm.UnlockBits(bd);
            }
        }
コード例 #4
0
 public void getbox(float x, float y, float z, float r)
 {
     GL.glTranslatef(x, y, z);
     GLU.gluQuadricNormals(q, GLU.GLU_SMOOTH);
     GLU.gluQuadricTexture(q, 1);
     GLU.gluSphere(q, r, 32, 32);
 }
コード例 #5
0
ファイル: butterfly.cs プロジェクト: zahrahosseini/butterfly
        public void     butterflydraw()
        {
            GLU.gluQuadricNormals(q1, GLU.GLU_SMOOTH);
            GLU.gluQuadricTexture(q1, 1);
            GL.glTranslatef(0.1f, 0.0f, 0);
            GL.glRotatef(90, 1.0f, 0.0f, 0.0f);
            GL.glColor3f(0.5f, 0.24f, 0.43f);
            GLU.gluCylinder(q1, 0.1, 0.1, 0.5f, 13, 13);

            GL.glTranslatef(0.11f, 0.19f, 0);
            GLU.gluSphere(q1, 0.15, 32, 32);

            GL.glTranslatef(1.19f, 0, 0);
            GL.glBegin(GL.GL_TRIANGLES);                                        // start drawing a triangle
            GL.glColor3f(1.0f, 0.0f, 0.0f);                                     // red
            GL.glVertex3f(0.2f, 0.5f, 0.0f);                                    // top point of the triangle
            GL.glColor3f(0.0f, 1.0f, 0.0f);                                     // green
            GL.glVertex3f(-0.1f, -0.25f, 0.0f);                                 // left point of the triangle
            GL.glColor3f(0.0f, 0.0f, 1.0f);                                     // blue
            GL.glVertex3f(0.5f, -0.7f, 0.0f);                                   // right point of the triangle
            GL.glEnd();

            GL.glTranslatef(1.19f, 0, 0);
            GL.glBegin(GL.GL_TRIANGLES);                                        // start drawing a triangle
            GL.glColor3f(1.0f, 0.0f, 0.0f);                                     // red
            GL.glVertex3f(-0.3f, 0.5f, 0.0f);                                   // top point of the triangle
            GL.glColor3f(0.0f, 1.0f, 0.0f);                                     // green
            GL.glVertex3f(0.0f, -0.25f, 0.0f);                                  // left point of the triangle
            GL.glColor3f(0.0f, 0.0f, 1.0f);                                     // blue
            GL.glVertex3f(-0.5f, -0.7f, 0.0f);                                  // right point of the triangle
            GL.glEnd();
        }
コード例 #6
0
 public void getbox()
 {
     // GL.glColor3f(0, 1, 0);
     GLU.gluQuadricNormals(q, GLU.GLU_SMOOTH);
     GLU.gluQuadricTexture(q, 1);
     GLU.gluSphere(q, 0.25, 32, 32);
 }
コード例 #7
0
        /// <summary>
        /// hier wird gezeichnet
        /// </summary>
        public void drawScene()
        {
            // Verschieben des Koordinatensystems um -6 in Z-Richtung
            // also "nach hinten"
            // und kippen nach Oben

            //coordinateSystem(2);

            GL.glTranslated(0.0, 0.0, -6.0);

            GL.glRotated(-60, 1, 0, 0);
            //coordinateSystem(0.5);

            coordinateSystem(1);

            // Zylinderobjekt erzeugen
            GLUquadric zylinder = GL.gluNewQuadric();

            // Zeicheneigenschaften einstellen:
            // Drahtgittermodell
            GLU.gluQuadricDrawStyle(zylinder, GLU.GLU_LINE);

            // ab jetzt in blau zeichnen
            GL.glColor3f(0.0f, 0.0f, 1.0f);

            // Zeichnen eines Zylinders
            // bottom-Durchmesser, top-Durchmesser, Höhe,
            // Anzahl der Linien-Segmente
            // Anzahl der Linien in der Höhe

            // Hier wird die Haupt-Kran Achse gezeichnet
            //GLU.gluCylinder(zylinder, 0.2, 0.2, 2, 20, 10);
        }
コード例 #8
0
ファイル: Tank.cs プロジェクト: matanmaron/Tank.Net
        public void DrawBoom()
        {
            GL.glPushMatrix();

            Random random = new Random();

            GL.glEnable(GL.GL_TEXTURE_2D);
            GL.glColor3f(0.8f, 0.8f, 1);
            GL.glBindTexture(GL.GL_TEXTURE_2D, cOGL.Textures[8]);
            GLU.gluQuadricTexture(obj, 1);
            GL.glTranslatef(posX, 0, posZ);

            //int zavit = random.Next(1, 180);
            //GL.glRotatef(zavit, 1, 0, 0);
            //zavit = random.Next(1, 180);
            //GL.glRotatef(zavit, 0, 1, 0);
            //zavit = random.Next(1, 180);
            //GL.glRotatef(zavit, 0, 0, 1);

            GLU.gluSphere(obj, hitsize, 16, 16);
            GL.glDisable(GL.GL_TEXTURE_2D);

            GL.glPopMatrix();
            hitsize       += 0.01f;
            remainingLife -= 1;
        }
コード例 #9
0
 public void Map_to_Space(int x, int y)
 {
     unsafe
     {
         double *modelview = stackalloc double[16];
         double *projection = stackalloc double[16];
         int *   viewport = stackalloc int[16];
         PO      pn, pf;
         pn = new PO();
         pf = new PO();
         GLU.glGetDoublev(GLU.GL_MODELVIEW_MATRIX, modelview);
         GLU.glGetDoublev(GLU.GL_PROJECTION_MATRIX, projection);
         GLU.glGetIntegerv(GLU.GL_VIEWPORT, viewport);
         double world_x, world_y, world_z;
         GLU.gluUnProject((double)x, (double)y, 0.0,
                          modelview, projection, viewport,
                          &world_x, &world_y, &world_z);
         pn.x = (float)world_x;
         pn.y = (float)world_y;
         pn.z = (float)world_z;
         GLU.gluUnProject((double)x, (double)y, 1.0,
                          modelview, projection, viewport,
                          &world_x, &world_y, &world_z);
         pf.x = (float)world_x;
         pf.y = (float)world_y;
         pf.z = (float)world_z;
         ll.Insert(new LINE(pn, pf));
     }
 }
コード例 #10
0
        protected override void OnSizeChanged(EventArgs e)
        {
            Size sz = Size;

            if (sz.Width != 0 && sz.Height != 0)
            {
                fHeight = sz.Height;
                fWidth  = sz.Width;

                if (fHeight == 0)
                {
                    fHeight = 1;
                }

                OpenGL.glViewport(0, 0, fWidth, fHeight);
                OpenGL.glMatrixMode(OpenGL.GL_PROJECTION);
                OpenGL.glLoadIdentity();

                GLU.gluPerspective(FOV_Y, (float)fWidth / fHeight, NEAR_CLIPPING_PLANE, FAR_CLIPPING_PLANE);

                OpenGL.glMatrixMode(OpenGL.GL_MODELVIEW);
                OpenGL.glLoadIdentity();
            }

            base.OnSizeChanged(e);
        }
コード例 #11
0
 public void attach(GLUtessellator tessellator)
 {
     GLU.gluTessCallback(tessellator, GLU.GLU_TESS_BEGIN, this);
     GLU.gluTessCallback(tessellator, GLU.GLU_TESS_END, this);
     GLU.gluTessCallback(tessellator, GLU.GLU_TESS_VERTEX, this);
     GLU.gluTessCallback(tessellator, GLU.GLU_TESS_EDGE_FLAG, this);
     GLU.gluTessCallback(tessellator, GLU.GLU_TESS_ERROR, this);
 }
コード例 #12
0
 /**
  * Frees any GLU resources used by this GLUTessellatorSupport, and invalidates this instance's internal GLU
  * tessellator.
  */
 public void endTessellation()
 {
     GLU.gluTessCallback(this.tess, GLU.GLU_TESS_BEGIN, null);
     GLU.gluTessCallback(this.tess, GLU.GLU_TESS_VERTEX, null);
     GLU.gluTessCallback(this.tess, GLU.GLU_TESS_END, null);
     GLU.gluTessCallback(this.tess, GLU.GLU_TESS_COMBINE, null);
     this.tess = null;
 }
コード例 #13
0
ファイル: GLSL.cs プロジェクト: ruly-rudel/ruly
        private void checkGlError(String op)
        {
            int error;

            while ((error = GLES20.GlGetError()) != GLES20.GlNoError)
            {
                Log.Error(TAG, op + ": glError " + error + " " + GLU.GluErrorString(error));
            }
        }
コード例 #14
0
        public void beginPolygon()
        {
            if (!this.enabled)
            {
                return;
            }

            GLU.gluTessBeginPolygon(this.tess, this); // Use this as the polygon user data to enable callbacks to this instance.
        }
コード例 #15
0
        protected void PrepareViewport()
        {
            OpenGL.glMatrixMode(OpenGL.GL_PROJECTION);
            OpenGL.glLoadIdentity();
            GLU.glOrtho(m_view.Left, m_view.Right, m_view.Bottom, m_view.Top, 0.0, 1.0);

            OpenGL.glMatrixMode(OpenGL.GL_MODELVIEW);
            OpenGL.glLoadIdentity();
        }
コード例 #16
0
ファイル: box.cs プロジェクト: zahrahosseini/butterfly
        public void getbox()
        {
            GLUquadric q  = GLU.gluNewQuadric();
            color      c1 = new color();

            GL.glScalef(0.125f, 0.125f, 0.125f);
            GL.glBegin(GL.GL_QUADS);
            // Front Face
            // Front Face

            GL.glNormal3f(0.0f, 0.0f, 1.0f);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-1.0f, -1.0f, 1.0f);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(1.0f, -1.0f, 1.0f);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(1.0f, 1.0f, 1.0f);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-1.0f, 1.0f, 1.0f);
            // Back Face
            GL.glNormal3f(0.0f, 0.0f, -1.0f);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-1.0f, -1.0f, -1.0f);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-1.0f, 1.0f, -1.0f);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(1.0f, 1.0f, -1.0f);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(1.0f, -1.0f, -1.0f);
            // Top Face
            GL.glNormal3f(0.0f, 1.0f, 0.0f);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-1.0f, 1.0f, -1.0f);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-1.0f, 1.0f, 1.0f);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(1.0f, 1.0f, 1.0f);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(1.0f, 1.0f, -1.0f);
            // Bottom Face
            GL.glNormal3f(0.0f, -1.0f, 0.0f);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-1.0f, -1.0f, -1.0f);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(1.0f, -1.0f, -1.0f);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(1.0f, -1.0f, 1.0f);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-1.0f, -1.0f, 1.0f);
            // Right face
            GL.glNormal3f(1.0f, 0.0f, 0.0f);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(1.0f, -1.0f, -1.0f);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(1.0f, 1.0f, -1.0f);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(1.0f, 1.0f, 1.0f);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(1.0f, -1.0f, 1.0f);
            // Left Face
            GL.glNormal3f(-1.0f, 0.0f, 0.0f);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-1.0f, -1.0f, -1.0f);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-1.0f, -1.0f, 1.0f);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-1.0f, 1.0f, 1.0f);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-1.0f, 1.0f, -1.0f);


            GL.glEnd(); GL.glScalef(8, 8, 8);
            GL.glTranslatef(0, -0.1f, 0.3f);
            GL.glColor3fv(c1.yellow);
            lo.LoadTextures1(5);
            GLU.gluQuadricNormals(q, GLU.GLU_SMOOTH);
            GLU.gluQuadricTexture(q, 1);
            GLU.gluDisk(q, 0.01, 0.1, 32, 32);
            GL.glTranslatef(0, -0.01f, -0.3f);
            GLU.gluDisk(q, 0.01, 0.1, 32, 32);
        }
コード例 #17
0
ファイル: Disc.cs プロジェクト: zahrahosseini/butterfly
 public void getbox()
 {
     GL.glRotatef(80, 1, 0, 0);
     // GL.glColor3f(0, 1, 0);
     GLU.gluQuadricNormals(q, GLU.GLU_SMOOTH);
     GLU.gluQuadricTexture(q, 1);
     GLU.gluDisk(q, 0.01, 0.2, 32, 32);
     GL.glRotatef(80, -1, 0, 0);
 }
コード例 #18
0
        public void endContour()
        {
            if (!this.enabled)
            {
                return;
            }

            GLU.gluTessEndContour(this.tess);
        }
コード例 #19
0
        public void endPolygon()
        {
            if (!this.enabled)
            {
                return;
            }

            GLU.gluTessEndPolygon(this.tess);
        }
コード例 #20
0
        public void setPolygonNormal(double x, double y, double z)
        {
            if (!this.enabled)
            {
                return;
            }

            GLU.gluTessNormal(this.tess, x, y, z);
        }
コード例 #21
0
        public void beginContour()
        {
            if (!this.enabled)
            {
                return;
            }

            GLU.gluTessBeginContour(this.tess);
        }
コード例 #22
0
        protected void PreparePxViewport()
        {
            OpenGL.glMatrixMode(OpenGL.GL_PROJECTION);
            OpenGL.glLoadIdentity();
            GLU.glOrtho(0.0, ClientSize.Width, ClientSize.Height, 0.0, 0.0, 1.0);

            OpenGL.glMatrixMode(OpenGL.GL_MODELVIEW);
            OpenGL.glLoadIdentity();
        }
コード例 #23
0
        protected void PrepareBiasedViewport()
        {
            OpenGL.glMatrixMode(OpenGL.GL_PROJECTION);
            OpenGL.glLoadIdentity();
            GLU.glOrtho(0.0, m_view.Width, m_view.Height, 0.0, 0.0, 1.0);

            OpenGL.glMatrixMode(OpenGL.GL_MODELVIEW);
            OpenGL.glLoadIdentity();
        }
コード例 #24
0
ファイル: Tank.cs プロジェクト: matanmaron/Tank.Net
 public Tank(float positionX, float positionZ, float initialRotation)
 {
     rotation      = initialRotation;
     posX          = positionX;
     posZ          = positionZ;
     destinX       = positionX;
     destinZ       = positionZ;
     reloadCounter = reloadTime;
     obj           = GLU.gluNewQuadric();
 }
コード例 #25
0
        public void ausleger()
        {
            //Ausleger zeichnen
            GL.glTranslated(0.0, 0.0, 0.0);
            GL.glRotated(90, 0, 1, 0);
            GL.glColor3f(1.0f, 0.0f, 0.0f);
            GLUquadric ausleger = GL.gluNewQuadric();

            GLU.gluCylinder(ausleger, 0.1, 0.1, 2, 20, 10);
        }
コード例 #26
0
        public void schieber()
        {
            //Schieber zeichnen
            GL.glTranslated(0.0, 0.0, targetArmLength);
            GL.glRotated(0, 0, 0, 0);
            GL.glColor3f(1.0f, 1.0f, 0.0f);
            GLUquadric schieber = GL.gluNewQuadric();

            GLU.gluCylinder(schieber, 0.15, 0.15, 0.1, 20, 10);
        }
コード例 #27
0
ファイル: Scene.cs プロジェクト: OdedRadi/Helicopter_3D
        private void initPerspective()
        {
            GL.glMatrixMode(GL.GL_PROJECTION);
            GL.glLoadIdentity();

            GLU.gluPerspective(m_fovyAngle, m_width / m_height, 1, 3000);

            GL.glMatrixMode(GL.GL_MODELVIEW);
            GL.glLoadIdentity();
        }
コード例 #28
0
        public void reset()
        {
            lock (matrixLock)
            {
                LastRot.setIdentity();                                // Reset Rotation
                ThisRot.setIdentity();                                // Reset Rotation
                GLU.glLoadIdentity();
            }

            this.PlotGL();
        }
コード例 #29
0
        public void OnSurfaceChanged(IGL10 gl, int width, int height)
        {
            gl.GlViewport(0, 0, width, height);
            gl.GlMatrixMode(IGL10Constants.GL_PROJECTION);
            gl.GlLoadIdentity();
            GLU.GluPerspective(gl, 45.0f, (float)width / (float)height, 0.1f, 100.0f);
            gl.GlViewport(0, 0, width, height);

            gl.GlMatrixMode(IGL10Constants.GL_MODELVIEW);
            gl.GlLoadIdentity();
        }
コード例 #30
0
        public override void glDraw()
        {
            GL.glClear(GL.GL_COLOR_BUFFER_BIT);
            GL.glLoadIdentity();

            GLU.gluLookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);

            drawMovTriangle();

            this.Refresh();
        }