コード例 #1
0
ファイル: cube_glass.cpp プロジェクト: etam/Snake3D
void GlassCube::draw(const glm::vec3 &camera_pos) const {
    glEnableClientState(GL_VERTEX_ARRAY); // {
    
    glPushAttrib(GL_LIGHTING_BIT | GL_ENABLE_BIT); // {
        
        glEnable(GL_BLEND);
        glDisable(GL_DEPTH_TEST);
        glEnable(GL_COLOR_MATERIAL);
        
        glVertexPointer(3, GL_FLOAT, 0, FlatSurface::vertices);
        
        static const GLfloat diffuse[] = {1.0f, 1.0f, 1.0f, 1.0f};
        glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
        static const GLfloat specular[] = {1.0f, 1.0f, 1.0f, 1.0f};
        glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
        glMateriali(GL_FRONT, GL_SHININESS, 100);
        glColor4f(0.5,  0.5,  0.5,  0.2);
        glNormal3b(0, 0, 1);
        
        if (side == GL_FRONT) {
            if (camera_pos.x >=  1) draw_side(0);
            if (camera_pos.y >=  1) draw_side(1);
            if (camera_pos.z >=  1) draw_side(2);
            if (camera_pos.x <= -1) draw_side(3);
            if (camera_pos.y <= -1) draw_side(4);
            if (camera_pos.z <= -1) draw_side(5);
        } else /* if (side == GL_BACK) */ {
            if (camera_pos.x >  -1) draw_side(3);
            if (camera_pos.y >  -1) draw_side(4);
            if (camera_pos.z >  -1) draw_side(5);
            if (camera_pos.x <   1) draw_side(0);
            if (camera_pos.y <   1) draw_side(1);
            if (camera_pos.z <   1) draw_side(2);
        }
        
    glPopAttrib(); // }
    
    glDisableClientState(GL_VERTEX_ARRAY); // }
}
コード例 #2
0
ファイル: GEMglNormal3b.cpp プロジェクト: Jackovic/Gem
/////////////////////////////////////////////////////////
// Render
//
void GEMglNormal3b :: render(GemState *state) {
	glNormal3b (nx, ny, nz);
}
コード例 #3
0
inline void glNormal( const GLbyte & x, const GLbyte & y, const GLbyte & z )		{ glNormal3b( x, y, z ); }
コード例 #4
0
ファイル: gl.cpp プロジェクト: dschaefer/swt-opengl
M(void, glNormal3b, jbyte nx, jbyte ny, jbyte nz) {
	glNormal3b(nx, ny, nz);
}