相关文章推荐
痴情的橙子  ·  mysql ...·  10 月前    · 
怕老婆的火柴  ·  MYSQL时间函数 - 简书·  1 年前    · 
眼睛小的大白菜  ·  python因子分析-掘金·  1 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

here is the output: http://i43.tinypic.com/9a5zyx.png if things were working the way i wanted, the colors in the left square would match the colors in the right square. thanks for any help regarding the subject

#include <gl/glfw.h>
const char* title="test";
GLuint img;
unsigned int w=64,h=64;
int screenwidth,screenheight;
void enable2d()
    glMatrixMode(GL_PROJECTION);
    glPushMatrix();
    glLoadIdentity();
    glViewport(0,0,screenwidth,screenheight);
    glOrtho(0,screenwidth,screenheight,0,-1,1);
    glMatrixMode(GL_MODELVIEW);
    glPushMatrix();
    glLoadIdentity();
    glPushAttrib(GL_DEPTH_BUFFER_BIT|GL_LIGHTING_BIT);
    glDisable(GL_DEPTH_TEST);
    glDisable(GL_LIGHTING);
    glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
void drawmytex()
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D,img);
    glBegin(GL_QUADS);
    glTexCoord2i(0,0);
    glVertex2i(0,0);
    glTexCoord2i(1,0);
    glVertex2i(w,0);
    glTexCoord2i(1,1);
    glVertex2i(w,h);
    glTexCoord2i(0,1);
    glVertex2i(0,h);
    glEnd();
    glDisable(GL_TEXTURE_2D);
void drawquad(int x,int y)
    glBegin(GL_QUADS);
    glColor3f(0.0f,1.0f,0.0f);
    glVertex2i(x,y);
    glColor3f(1.0f,0.0f,1.0f);
    glVertex2i(x+w,y);
    glColor3f(0.0f,1.0f,1.0f);
    glVertex2i(x+w,y+h);
    glColor3f(0.0f,0.0f,1.0f);
    glVertex2i(x,y+h);
    glEnd();
void texcopy()
    if (!glIsTexture(img))
        glDeleteTextures(1,&img);
    glGenTextures(1,&img);
    glBindTexture(GL_TEXTURE_2D,img);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
    glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,w,h,0,GL_RGBA,GL_UNSIGNED_BYTE,0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0,w,h,0,-1,1);
    glViewport(0,0,w,h);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    drawquad(0,0);
    glBindTexture(GL_TEXTURE_2D,img);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
    //glCopyTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,0,0,w,h,0);
    glCopyTexSubImage2D(GL_TEXTURE_2D,0,0,0,0,0,w,h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0,screenwidth,screenheight,0,-1,1);
    glViewport(0,0,screenwidth,screenheight);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
int main()
    int running;
    glfwInit();
    running=glfwOpenWindow(640,480,0,0,0,0,0,0,GLFW_WINDOW);
    if (!running)
        glfwTerminate();
        return 0;
    glfwSetWindowTitle(title);
    glfwEnable(GLFW_STICKY_KEYS);
    glfwGetWindowSize(&screenwidth,&screenheight);
    enable2d();
    texcopy();
        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
        glLoadIdentity();
        drawquad(64,0);
        drawmytex();
        glfwSwapBuffers();
        running=!glfwGetKey(GLFW_KEY_ESC)&&glfwGetWindowParam(GLFW_OPENED);
        GLenum error=glGetError();
        if (error!=GL_NO_ERROR)running=error;
        glfwSleep(.017);
    while (running==1);
    glDeleteTextures(1,&img);
    glfwTerminate();
    return running;
        

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.