亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? example4.cpp

?? c++源程序
?? CPP
字號:
/****************************************************************************

  example4.cpp

  A GLUI program demonstrating nested columns

  -----------------------------------------------------------------------
	   
  10/2/98 Paul Rademacher (rademach@cs.unc.edu)

****************************************************************************/

#include <string.h>
#include <GL/glut.h>
#include "glui.h"

float xy_aspect;
int   last_x, last_y;
float rotationX = 0.0, rotationY = 0.0;

/** These are the live variables passed into GLUI ***/
int   wireframe = 0;
int   obj_type = 1;
int   segments = 8;
int   segments2 = 8;
int   light0_enabled = 1;
int   light1_enabled = 0;
float light0_intensity = 1.0;
float light1_intensity = 1.0;
int   main_window;
float scale = 1.0;
int   show_sphere=1;
int   show_torus=1;

/** Pointers to the windows and some of the controls we'll create **/
GLUI *glui;
GLUI_Checkbox   *checkbox;
GLUI_Spinner    *spinner, *light0_spinner, *light1_spinner;
GLUI_RadioGroup *radio;
GLUI_Panel      *obj_panel;

/********** User IDs for callbacks ********/
#define LIGHT0_ENABLED_ID    200
#define LIGHT1_ENABLED_ID    201
#define LIGHT0_INTENSITY_ID  250
#define LIGHT1_INTENSITY_ID  251

/********** Miscellaneous global variables **********/

GLfloat light0_ambient[] =  {0.1f, 0.1f, 0.3f, 1.0f};
GLfloat light0_diffuse[] =  {.6f, .6f, 1.0f, 1.0f};
GLfloat light0_position[] = {.5f, .5f, 1.0f, 0.0f};

GLfloat light1_ambient[] =  {0.1f, 0.1f, 0.3f, 1.0f};
GLfloat light1_diffuse[] =  {.9f, .6f, 0.0f, 1.0f};
GLfloat light1_position[] = {-1.0f, -1.0f, 1.0f, 0.0f};

/**************************************** control_cb() *******************/
/* GLUI control callback                                                 */

void control_cb( int control )
{
  if ( control == LIGHT0_ENABLED_ID ) {
    if ( light0_enabled ) {
      glEnable( GL_LIGHT0 );
      light0_spinner->enable();
    }
    else {
      glDisable( GL_LIGHT0 ); 
      light0_spinner->disable();
    }
  }
  else if ( control == LIGHT1_ENABLED_ID ) {
    if ( light1_enabled ) {
      glEnable( GL_LIGHT1 );
      light1_spinner->enable();
    }
    else {
      glDisable( GL_LIGHT1 ); 
      light1_spinner->disable();
    }
  }
  else if ( control == LIGHT0_INTENSITY_ID ) {
    float v[] = { light0_diffuse[0],  light0_diffuse[1],
		  light0_diffuse[2],  light0_diffuse[3] };
    
    v[0] *= light0_intensity;
    v[1] *= light0_intensity;
    v[2] *= light0_intensity;

    glLightfv(GL_LIGHT0, GL_DIFFUSE, v );
  }
  else if ( control == LIGHT1_INTENSITY_ID ) {
    float v[] = { light1_diffuse[0],  light1_diffuse[1],
		  light1_diffuse[2],  light1_diffuse[3] };
    
    v[0] *= light1_intensity;
    v[1] *= light1_intensity;
    v[2] *= light1_intensity;

    glLightfv(GL_LIGHT1, GL_DIFFUSE, v );
  }
}

/**************************************** myGlutKeyboard() **********/

void myGlutKeyboard(unsigned char Key, int x, int y)
{
  switch(Key)
  {
  case 27: 
  case 'q':
    exit(0);
    break;
  };
  
  glutPostRedisplay();
}


/***************************************** myGlutMenu() ***********/

void myGlutMenu( int value )
{
  myGlutKeyboard( value, 0, 0 );
}


/***************************************** myGlutIdle() ***********/

void myGlutIdle( void )
{
  /* According to the GLUT specification, the current window is 
     undefined during an idle callback.  So we need to explicitly change
     it if necessary */
  if ( glutGetWindow() != main_window ) 
    glutSetWindow(main_window);  

  glutPostRedisplay();
}

/***************************************** myGlutMouse() **********/

void myGlutMouse(int button, int button_state, int x, int y )
{
  if ( button == GLUT_LEFT_BUTTON && button_state == GLUT_DOWN ) {
    last_x = x;
    last_y = y;
  }
}


/***************************************** myGlutMotion() **********/

void myGlutMotion(int x, int y )
{
  rotationX += (float) (y - last_y);
  rotationY += (float) (x - last_x);

  last_x = x;
  last_y = y;

  glutPostRedisplay(); 
}

/**************************************** myGlutReshape() *************/

void myGlutReshape( int x, int y )
{
  xy_aspect = (float)x / (float)y;
  glViewport( 0, 0, x, y );

  glutPostRedisplay();
}


/************************************************** draw_axes() **********/
/* Disables lighting, then draws RGB axes                                */

void draw_axes( float scale )
{
  glDisable( GL_LIGHTING );

  glPushMatrix();
  glScalef( scale, scale, scale );

  glBegin( GL_LINES );
 
  glColor3f( 1.0, 0.0, 0.0 );
  glVertex3f( .8f, 0.05f, 0.0 );  glVertex3f( 1.0, 0.25f, 0.0 ); /* Letter X*/
  glVertex3f( 0.8f, .25f, 0.0 );  glVertex3f( 1.0, 0.05f, 0.0 );
  glVertex3f( 0.0, 0.0, 0.0 );  glVertex3f( 1.0, 0.0, 0.0 ); /* X axis */

  glColor3f( 0.0, 1.0, 0.0 );
  glVertex3f( 0.0, 0.0, 0.0 );  glVertex3f( 0.0, 1.0, 0.0 ); /* Y axis */

  glColor3f( 0.0, 0.0, 1.0 );
  glVertex3f( 0.0, 0.0, 0.0 );  glVertex3f( 0.0, 0.0, 1.0 ); /* Z axis  */
  glEnd();

  glPopMatrix();

  glEnable( GL_LIGHTING );
}


/***************************************** myGlutDisplay() *****************/

void myGlutDisplay( void )
{
  glClearColor( .9f, .9f, .9f, 1.0f );
  glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

  glMatrixMode( GL_PROJECTION );
  glLoadIdentity();
  glFrustum( -xy_aspect*.04, xy_aspect*.04, -.04, .04, .1, 15.0 );

  glMatrixMode( GL_MODELVIEW );
  glLoadIdentity();
  glTranslatef( 0.0, 0.0, -2.6f );

  glScalef( scale, scale, scale );

  /*** Now we render object, using the variables 'obj_type', 'segments', and
    'wireframe'.  These are _live_ variables, which are transparently 
    updated by GLUI ***/

  glPushMatrix();
  glTranslatef( -.5, 0.0, 0.0 );
  glRotatef( rotationY, 0.0, 1.0, 0.0 );
  glRotatef( rotationX, 1.0, 0.0, 0.0 );
  if ( wireframe && show_sphere)
    glutWireSphere( .4, segments, segments );
  else if ( show_sphere )
    glutSolidSphere( .4, segments, segments );
  draw_axes(.52f);
  glPopMatrix();

  glPushMatrix();
  glTranslatef( .5, 0.0, 0.0 );
  glRotatef( rotationY, 0.0, 1.0, 0.0 );
  glRotatef( rotationX, 1.0, 0.0, 0.0 );
  if ( wireframe && show_torus )
    glutWireTorus( .15,.3,16,segments );
  else if ( show_torus )
    glutSolidTorus( .15,.3,16,segments );
  draw_axes(.52f);
  glPopMatrix();

  glutSwapBuffers(); 
}


/**************************************** main() ********************/

void main(int argc, char* argv[])
{
  /****************************************/
  /*   Initialize GLUT and create window  */
  /****************************************/

  glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
  glutInitWindowPosition( 50, 50 );
  glutInitWindowSize( 300, 300 );
 
  main_window = glutCreateWindow( "GLUI Example 4" );
  glutDisplayFunc( myGlutDisplay );
  glutReshapeFunc( myGlutReshape );  
  glutKeyboardFunc( myGlutKeyboard );
  glutMotionFunc( myGlutMotion );
  glutMouseFunc( myGlutMouse );

  /****************************************/
  /*       Set up OpenGL lights           */
  /****************************************/

  glEnable(GL_LIGHTING);
  glEnable( GL_NORMALIZE );

  glEnable(GL_LIGHT0);
  glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient);
  glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);
  glLightfv(GL_LIGHT0, GL_POSITION, light0_position);

  glLightfv(GL_LIGHT1, GL_AMBIENT, light1_ambient);
  glLightfv(GL_LIGHT1, GL_DIFFUSE, light1_diffuse);
  glLightfv(GL_LIGHT1, GL_POSITION, light1_position);

  /****************************************/
  /*          Enable z-buferring          */
  /****************************************/

  glEnable(GL_DEPTH_TEST);

  /****************************************/
  /*         Here's the GLUI code         */
  /****************************************/

  printf( "GLUI version: %3.2f\n", GLUI_Master.get_version() );

  glui = GLUI_Master.create_glui( "GLUI", 0, 400, 50 ); /* name, flags,
							   x, and y */

  /*** Add invisible panel to hold rest of controls ***/
  GLUI_Panel *panel1 = glui->add_panel( "", GLUI_PANEL_NONE );

  obj_panel = glui->add_panel_to_panel( panel1, "Objects" );

  /***** Control for object params *****/

  checkbox = 
    glui->add_checkbox_to_panel( obj_panel, "Wireframe", &wireframe, 1, 
				 control_cb );
  spinner  = glui->add_spinner_to_panel( obj_panel, "Segments:",
					 GLUI_SPINNER_INT, &segments);
  spinner->set_int_limits( 3, 60 );
  spinner->set_alignment( GLUI_ALIGN_RIGHT );

  GLUI_Spinner *scale_spinner = 
    glui->add_spinner_to_panel( obj_panel, "Scale:",
				GLUI_SPINNER_FLOAT, &scale);
  scale_spinner->set_float_limits( .2f, 4.0 );
  scale_spinner->set_alignment( GLUI_ALIGN_RIGHT );

  GLUI_Panel *panel2 = glui->add_panel_to_panel( obj_panel, "",
						 GLUI_PANEL_NONE );
  glui->add_checkbox_to_panel( panel2, "Sphere", &show_sphere );
  glui->add_column_to_panel( panel2 );
  glui->add_checkbox_to_panel( panel2, "Torus", &show_torus );


  /*** Start a new column in this panel ***/
  glui->add_column_to_panel(panel1, false); /* 'false' means don't draw bar */


  /******** Add some controls for lights ********/

  GLUI_Panel *light0 = glui->add_panel_to_panel( panel1, "Light 1" );
  GLUI_Panel *light1 = glui->add_panel_to_panel( panel1, "Light 2" );

  glui->add_checkbox_to_panel( light0, "Enabled", &light0_enabled,
			       LIGHT0_ENABLED_ID, control_cb );
  light0_spinner = 
    glui->add_spinner_to_panel( light0, "Intensity:", GLUI_SPINNER_FLOAT,
				&light0_intensity, LIGHT0_INTENSITY_ID,
				control_cb );
  light0_spinner->set_float_limits( 0.0, 1.0 );

  glui->add_checkbox_to_panel( light1, "Enabled", &light1_enabled,
			       LIGHT1_ENABLED_ID, control_cb );
  light1_spinner = 
    glui->add_spinner_to_panel( light1, "Intensity:", GLUI_SPINNER_FLOAT,
				&light1_intensity, LIGHT1_INTENSITY_ID,
				control_cb );
  light1_spinner->set_float_limits( 0.0, 1.0 );
  light1_spinner->disable();   /* Disable this light initially */

  
  /****** A 'quit' button *****/

  glui->add_button( "Quit", 0,(GLUI_Update_CB)exit );


  /**** Link windows to GLUI, and register idle callback ******/
  
  glui->set_main_gfx_window( main_window );

  /**** We register the idle callback with GLUI, *not* with GLUT ****/
  GLUI_Master.set_glutIdleFunc( myGlutIdle );

  /**** Regular GLUT main loop ****/
  
  glutMainLoop();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩高清在线| 欧美精品一区二区三区蜜桃| 狠狠色2019综合网| 欧美狂野另类xxxxoooo| av一区二区三区黑人| 成人国产亚洲欧美成人综合网 | 同产精品九九九| 欧美影院一区二区| 精品久久一区二区三区| 国产一区不卡视频| 欧美一级高清片在线观看| 亚洲精品成人少妇| 一本色道久久综合亚洲91| 欧美激情在线免费观看| 国产东北露脸精品视频| 九色综合狠狠综合久久| 日韩精品电影在线| 欧美三级日韩在线| 国产精品中文字幕日韩精品 | 色婷婷亚洲综合| 一区二区欧美精品| www.综合网.com| 久久国产精品99久久久久久老狼| 欧美xfplay| 成人在线综合网站| 一区二区三区中文免费| 91精品国产麻豆国产自产在线| 国产一区二区视频在线| 亚洲欧洲国产日本综合| 岛国av在线一区| 亚洲第一精品在线| 久久综合久久综合久久综合| 99热国产精品| 蜜桃视频在线一区| 亚洲欧洲在线观看av| 欧美日韩精品一区二区| 国产精品1区2区| 亚洲制服丝袜av| 精品日韩一区二区| 日本高清不卡aⅴ免费网站| 青娱乐精品在线视频| 国产精品女同互慰在线看| 欧美美女喷水视频| 成人动漫视频在线| 日韩高清欧美激情| 国产精品乱码一区二区三区软件| 日本久久一区二区| 亚洲成人你懂的| 国产农村妇女毛片精品久久麻豆| 91九色最新地址| 国产在线不卡视频| 亚洲一二三区在线观看| 国产日韩欧美精品一区| 中文字幕中文字幕中文字幕亚洲无线| 久久影院视频免费| 色国产精品一区在线观看| 精品亚洲国产成人av制服丝袜 | 色久综合一二码| 国精产品一区一区三区mba视频| 一区二区在线观看免费视频播放| 久久久蜜臀国产一区二区| 欧美日韩国产大片| 色哦色哦哦色天天综合| 波多野结衣在线aⅴ中文字幕不卡| 亚洲综合视频在线观看| 欧美精品丝袜中出| 一本色道久久综合亚洲91| 国产一区二区看久久| 日韩福利视频网| 亚洲大片在线观看| 亚洲免费在线视频一区 二区| 国产亚洲精品免费| 欧美精品一区二区三区蜜桃 | 一区二区理论电影在线观看| 亚洲国产精品激情在线观看| 欧美哺乳videos| 欧美大胆一级视频| 日韩一区二区免费在线电影| 欧美精品第1页| 欧美日本在线观看| 欧美视频一二三区| 国产精品亚洲视频| 爽好久久久欧美精品| 午夜精品一区二区三区免费视频| 一区二区三区 在线观看视频| 一区二区三区蜜桃网| 玉米视频成人免费看| 又紧又大又爽精品一区二区| 亚洲国产一区在线观看| 亚洲午夜精品网| 亚洲成人一区在线| 石原莉奈一区二区三区在线观看| 视频一区中文字幕国产| 在线视频欧美精品| 亚洲一区在线播放| 亚洲福利国产精品| 日本中文字幕一区| 日韩高清欧美激情| 国内精品伊人久久久久影院对白| 黄页视频在线91| 国产sm精品调教视频网站| 日韩精品中文字幕一区二区三区| 精品亚洲aⅴ乱码一区二区三区| 日韩欧美一级在线播放| 日韩午夜激情视频| 国产一区欧美日韩| 亚洲国产一区二区三区青草影视| 综合久久久久综合| 综合电影一区二区三区 | 盗摄精品av一区二区三区| 国产三级欧美三级日产三级99| 成人免费一区二区三区在线观看| 91久久精品一区二区| 国产资源精品在线观看| 国产美女av一区二区三区| 99久久婷婷国产综合精品电影| 成人激情综合网站| 粉嫩高潮美女一区二区三区| 欧美激情自拍偷拍| 欧美zozo另类异族| 26uuu色噜噜精品一区二区| 亚洲国产毛片aaaaa无费看| 国产精品久久影院| 国产大陆亚洲精品国产| 91精品国产麻豆| 国产精品麻豆99久久久久久| 五月天激情小说综合| 天堂在线亚洲视频| 69av一区二区三区| 国产精品人人做人人爽人人添| 欧美日韩一级二级| 日本不卡中文字幕| 国产精品美女久久久久av爽李琼 | 国产高清精品久久久久| 狠狠色丁香久久婷婷综| 亚洲欧美区自拍先锋| 舔着乳尖日韩一区| 成人性生交大合| 欧美人与禽zozo性伦| 国产精品嫩草久久久久| 美女视频第一区二区三区免费观看网站| 国产精品 日产精品 欧美精品| 欧美性猛交xxxx乱大交退制版| 国产福利精品导航| 亚洲精品写真福利| 欧美精品在线观看一区二区| 久久超碰97中文字幕| 欧美色图12p| 亚洲18女电影在线观看| 91麻豆成人久久精品二区三区| www.亚洲在线| 中文字幕制服丝袜一区二区三区| 欧美体内she精高潮| 成人小视频免费观看| 丝袜诱惑亚洲看片 | 亚洲人成网站在线| xf在线a精品一区二区视频网站| 在线欧美日韩精品| 成人午夜在线播放| 国产一区二区影院| 久久99久久久久| 日韩黄色在线观看| 亚洲一卡二卡三卡四卡无卡久久| 国产精品久久久久久久久免费桃花 | 亚洲国产精品一区二区www在线| 国产欧美日本一区二区三区| 日韩精品一区二区三区视频在线观看| 色欧美88888久久久久久影院| 91亚洲精品一区二区乱码| eeuss影院一区二区三区| 成人高清免费观看| 欧美日韩国产一级片| 热久久免费视频| 91在线丨porny丨国产| 国产精品午夜电影| av资源网一区| 欧美色电影在线| 久久精品亚洲麻豆av一区二区| 蜜臀久久99精品久久久久久9| 欧美天天综合网| 亚洲成人av福利| 欧美一区二区三区四区久久| 一区二区三区美女视频| av色综合久久天堂av综合| 亚洲成人动漫在线免费观看| 亚洲国产成人一区二区三区| 久久奇米777| 91国产成人在线| 一本大道久久a久久精二百| 欧美最猛性xxxxx直播| 91天堂素人约啪| 国产精品羞羞答答xxdd| 国产69精品一区二区亚洲孕妇| 欧洲激情一区二区| 91亚洲精品一区二区乱码| 国产精品羞羞答答xxdd| 国产麻豆精品一区二区| 婷婷综合五月天| 综合欧美亚洲日本| 无吗不卡中文字幕|