Click here to Skip to main content
15,919,931 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
hello I am using glut and opengl with c++ , I have home I want to draw blue QUADS in it my problem when I draw the QUADS all the sense color in blue , so how I can to color only QUADS in blue color and Prevents to color all sense in blue color what I do wrong how to remove the blue color from all the sense and color only my QUAD? my try:

void drawSquare1()
{
     glBegin(GL_QUADS);
    glColor3d(1,0,0);
    glVertex3f(-0.5,-0.5,-0.5);
    glColor3d(1,1,0);
    glVertex3f(0.5,-0.5,-0.5);
    glColor3d(1,1,1);
    glVertex3f(0.5,0.5,-0.5);
    glColor3d(0,1,1);
    glVertex3f(-0.5,0.5,-0.5);
glEnd();
}

void render(void)                                                   // Our Rendering Is Done Here
{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);             // Clear The Screen And The Depth Buffer
    glLoadIdentity();                                               // Reset The View

    GLfloat xtrans = -g_xpos;
    GLfloat ztrans = -g_zpos;
    GLfloat ytrans = -g_ypos;
    if(g_yrot > 360)
        g_yrot -= 360;
    else if(g_yrot < 0)
        g_yrot += 360;
    GLfloat sceneroty = (360.0f - g_yrot);


    int numpolygons;

    glRotatef(g_lookupdown,1.0f,0,0);
    glRotatef(sceneroty,0,1.0f,0);

    glTranslatef(xtrans, ytrans, ztrans);

    numpolygons = g_sector1.numpolygons;

    for (int loop_m = 0; loop_m < numpolygons; loop_m++)
        texture_object(loop_m); 

    gluQuadricDrawStyle(my_shape[0],GLU_FILL);
    glBindTexture(GL_TEXTURE_2D, textures[1].texID);
    glScalef(0.1,0.1,0.1);
    glTranslatef(0.78,14.3,-4.2);
    gluSphere(my_shape[0], 1.0,50,50);

    gluQuadricDrawStyle(my_shape[1],GLU_FILL);
    glBindTexture(GL_TEXTURE_2D, textures[8].texID);
    glTranslatef(-20,0,0);
    gluSphere(my_shape[1], 1.0,50,50);

    gluQuadricDrawStyle(my_shape[2],GLU_FILL);
    glBindTexture(GL_TEXTURE_2D, textures[22].texID);
    glTranslatef(40,0,0);
    gluSphere(my_shape[2], 1.0,50,50);

    glMatrixMode(GL_PROJECTION);                                    // Select The Projection Matrix
    glPushMatrix();                                                 // Store The Projection Matrix
    glLoadIdentity();                                               // Reset The Projection Matrix

    glOrtho(-10,window_width,0,window_height,-10,10);                   // Set Up An Ortho Screen
    glMatrixMode(GL_MODELVIEW);                                     // Select The Modelview Matrix
drawSquare1();
glMatrixMode(GL_PROJECTION);                                    // Select The Projection Matrix
    glPopMatrix();                                                  // Restore The Old Projection Matrix
    //glPushMatrix();
    drawSquare1();
    //glPopMatrix();
    glMatrixMode(GL_MODELVIEW);                                     // Select The Modelview Matrix
    glutSwapBuffers ( );
}

int main(int argc, char** argv)                                 // Main Function For Bringing It All Together.
{
    //cout << "Hello World!" << endl;
    //cin.get();
    glutInit(&argc, argv);                                      // GLUT Initializtion
    glutInitDisplayMode(GLUT_DEPTH | GLUT_RGBA | GLUT_DOUBLE);  // (CHANGED)
    if (g_gamemode) 
    {
        glutGameModeString("640x480:16");                       // Select The 640x480 In 16bpp Mode
        if (glutGameModeGet(GLUT_GAME_MODE_POSSIBLE))
            glutEnterGameMode();                                // Enter Full Screen
        else g_gamemode = false;                                // Cannot Enter Game Mode, Switch To Windowed
    }
    screen_width = glutGet(GLUT_SCREEN_WIDTH);
    screen_height = glutGet(GLUT_SCREEN_HEIGHT);
    window_width = screen_width/1.4;
    window_height = screen_height/1.4;

    if (!g_gamemode) 
    {
        glutInitWindowSize(window_width,window_height);           // Window Size If We Start In Windowed Mode
        glutInitWindowPosition((screen_width-window_width)/2,(screen_height-window_height)/2);
        glutCreateWindow("Frank's 3-D House");                  // Window Title 
    }

    init();


    glutIgnoreKeyRepeat(true);                                  // Disable Auto Repeat (NEW)
    //  glutKeyboardFunc(myKey); // register the key handler.

    glutDisplayFunc(render);                                    // Register The Display Function
    glutReshapeFunc(reshape);                                   // Register The Reshape Handler
    glutKeyboardFunc(keyboard);                                 // Register The Keyboard Handler
    //glRasterPos2f(lineMargin, currentHight); // set the cursor to the initial position.
    glutSpecialFunc(special_keys);                              // Register Special Keys Handler
    glutSpecialUpFunc(special_keys_up);                         // Called When A Special Key Released (NEW)
    glutIdleFunc(game_function);                                // Process User Input And Does Rendering (CHANGED)
    glutMouseFunc(mouse) ;
    glutMainLoop();                                             // Go To GLUT Main Loop
    return 0;


What I have tried:

my try above so any body can help ?
Posted
Updated 26-Feb-18 0:51am

1 solution

You need to have some informations which of your quads arent blue, so than draw them not.

I would create an array of bools to store that information and use it in a simple manner.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900