• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            SGI OpenGL Color Cube

            From:http://www.terrence.com/opengl/ccube/ccube.html
            OpenGL Color Cube
            // Name     : OpenGL Color Cube
            // Author   : Terrence Ma
            // Email    : terrence@terrence.com
            // Web      : http://www.terrence.com
            // Date     : 10/25/2001
            // Modified : Tutorial sample from Mesa3d.org (http://www.mesa3d.org)

            /*
             * Copyright (c) 1993-1997, Silicon Graphics, Inc.
             * ALL RIGHTS RESERVED 
             * Permission to use, copy, modify, and distribute this software for 
             * any purpose and without fee is hereby granted, provided that the above
             * copyright notice appear in all copies and that both the copyright notice
             * and this permission notice appear in supporting documentation, and that 
             * the name of Silicon Graphics, Inc. not be used in advertising
             * or publicity pertaining to distribution of the software without specific,
             * written prior permission. 
             *
             * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
             * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
             * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
             * FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL SILICON
             * GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
             * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
             * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
             * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
             * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC.  HAS BEEN
             * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
             * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
             * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
             * 
             * US Government Users Restricted Rights 
             * Use, duplication, or disclosure by the Government is subject to
             * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
             * (c)(1)(ii) of the Rights in Technical Data and Computer Software
             * clause at DFARS 252.227-7013 and/or in similar or successor
             * clauses in the FAR or the DOD or NASA FAR Supplement.
             * Unpublished-- rights reserved under the copyright laws of the
             * United States.  Contractor/manufacturer is Silicon Graphics,
             * Inc., 2011 N.  Shoreline Blvd., Mountain View, CA 94039-7311.
             *
             * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
             
            */


            /*
             *  aapoly.c
             *  This program draws filled polygons with antialiased
             *  edges.  The special GL_SRC_ALPHA_SATURATE blending 
             *  function is used.
             *  Pressing the 't' key turns the antialiasing on and off.
             
            */

            #include 
            <GL/glut.h>
            #include 
            <stdlib.h>
            #include 
            <stdio.h>
            #include 
            <string.h>

            GLboolean polySmooth 
            = GL_TRUE;

            static void init(void)
            {
               glCullFace (GL_BACK);
               glEnable (GL_CULL_FACE);
               glBlendFunc (GL_SRC_ALPHA_SATURATE, GL_ONE);
               glClearColor (
            0.00.00.00.0);
            }


            #define NFACE 6
            #define NVERT 8
            void drawCube(GLdouble x0, GLdouble x1, GLdouble y0, GLdouble y1,
                    GLdouble z0, GLdouble z1)
            {
               
            static GLfloat v[8][3];
               
            static GLfloat c[8][4= {
                  
            {0.00.00.01.0}{1.00.00.01.0},
                  
            {0.01.00.01.0}{1.01.00.01.0},
                  
            {0.00.01.01.0}{1.00.01.01.0},
                  
            {0.01.01.01.0}{1.01.01.01.0}
               }
            ;

            /*  indices of front, top, left, bottom, right, back faces  */
               
            static GLubyte indices[NFACE][4= {
                  
            {4567}{2376}{0473},
                  
            {0154}{1562}{0321}
               }
            ;

               v[
            0][0= v[3][0= v[4][0= v[7][0= x0;
               v[
            1][0= v[2][0= v[5][0= v[6][0= x1;
               v[
            0][1= v[1][1= v[4][1= v[5][1= y0;
               v[
            2][1= v[3][1= v[6][1= v[7][1= y1;
               v[
            0][2= v[1][2= v[2][2= v[3][2= z0;
               v[
            4][2= v[5][2= v[6][2= v[7][2= z1;

            #ifdef GL_VERSION_1_1
               glEnableClientState (GL_VERTEX_ARRAY);
               glEnableClientState (GL_COLOR_ARRAY);
               glVertexPointer (
            3, GL_FLOAT, 0, v);
               glColorPointer (
            4, GL_FLOAT, 0, c);
               glDrawElements (GL_QUADS, NFACE
            *4, GL_UNSIGNED_BYTE, indices);
               glDisableClientState (GL_VERTEX_ARRAY);
               glDisableClientState (GL_COLOR_ARRAY);
            #else
               printf (
            "If this is GL Version 1.0, ");
               printf (
            "vertex arrays are not supported.\n");
               exit(
            1);
            #endif
            }


            /*  Note:  polygons must be drawn from front to back
             *  for proper blending.
             
            */

            void display(void)
            {
               
            if (polySmooth) {
                  glClear (GL_COLOR_BUFFER_BIT);
                  glEnable (GL_BLEND);
                  glEnable (GL_POLYGON_SMOOTH);
                  glDisable (GL_DEPTH_TEST);
               }

               
            else 
                  glClear (GL_COLOR_BUFFER_BIT 
            | GL_DEPTH_BUFFER_BIT);
                  glDisable (GL_BLEND);
                  glDisable (GL_POLYGON_SMOOTH);
                  glEnable (GL_DEPTH_TEST);
               }


               glPushMatrix ();
                  glTranslatef (
            0.00.0-8.0);    
                  glRotatef (
            30.01.00.00.0);
                  glRotatef (
            60.00.01.00.0); 
                  drawCube(
            -0.80.8-0.80.8-0.80.8);
               glPopMatrix ();

               glFlush ();
            }


            void reshape(int w, int h)
            {
               glViewport(
            00, (GLsizei) w, (GLsizei) h);
               glMatrixMode(GL_PROJECTION);
               glLoadIdentity();
               gluPerspective(
            30.0, (GLfloat) w/(GLfloat) h, 1.020.0);
               glMatrixMode(GL_MODELVIEW);
               glLoadIdentity();
            }


            /* ARGSUSED1 */
            void keyboard(unsigned char key, int x, int y)
            {
               
            switch (key) {
                  
            case 't':
                  
            case 'T':
                     polySmooth 
            = !polySmooth;
                     glutPostRedisplay();
                     
            break;
                  
            case 27:
                     exit(
            0);  /*  Escape key  */
                     
            break;
                  
            default:
                     
            break;
               }

            }


            /*  Main Loop
             
            */

            int main(int argc, char** argv)
            {
               glutInit(
            &argc, argv);
               glutInitDisplayMode (GLUT_SINGLE 
            | GLUT_RGB 
                                    
            | GLUT_ALPHA | GLUT_DEPTH);
               glutInitWindowSize(
            400400);
               glutCreateWindow(
            "OpenGL Color Cube");
               init ();
               glutReshapeFunc (reshape);
               glutKeyboardFunc (keyboard);
               glutDisplayFunc (display);
               glutMainLoop();
               
            return 0;
            }




             

            posted on 2007-04-11 08:51 楊粼波 閱讀(499) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            婷婷国产天堂久久综合五月| 青春久久| AV无码久久久久不卡网站下载 | 久久91精品国产91久久户| 一本久久精品一区二区| 欧美久久亚洲精品| 久久国产乱子伦精品免费午夜| 精品国产一区二区三区久久| 99久久人妻无码精品系列 | 国产成人精品久久一区二区三区| 亚洲国产欧洲综合997久久| 久久亚洲AV成人无码| 久久人与动人物a级毛片| 久久精品国产2020| 无码人妻久久久一区二区三区| 无码日韩人妻精品久久蜜桃 | 久久久久夜夜夜精品国产| 潮喷大喷水系列无码久久精品| 久久香蕉超碰97国产精品| 一本一本久久A久久综合精品| 99久久精品免费看国产一区二区三区 | 国产aⅴ激情无码久久| 伊人久久大香线蕉av一区| 久久偷看各类wc女厕嘘嘘| 2021久久精品国产99国产精品| 亚洲va久久久噜噜噜久久| 亚洲欧美另类日本久久国产真实乱对白 | 亚洲第一极品精品无码久久| 久久亚洲sm情趣捆绑调教| 亚洲AV无码1区2区久久| 国产高潮国产高潮久久久| 欧美亚洲国产精品久久蜜芽| 久久国产精品免费| 亚洲午夜精品久久久久久app| 亚洲乱码精品久久久久..| 2021久久国自产拍精品| 久久久久久国产精品美女 | 国产美女久久久| 久久国产免费直播| 亚洲欧美成人综合久久久| 日本免费久久久久久久网站|