Ir ao conteúdo
  • Cadastre-se

Problema ao carregar uma textura no OpenGL que esta em um Resource


felipedurar

Posts recomendados

 Boa noite, eu estou tentando carregar uma textura bitmap que esta em um arquivo resource, eu já habilitei a textura e ela até aparece na tela mas parece que ela fica em um tamanho muito menor, vejam a minha função que estou usando para carregar a textura:

int LoadGLTextures() // Load Bitmaps And Convert To Textures{    // load bitmap from resource file    HBITMAP bitmap = LoadBitmap(b_hinst, "IDB_BITMAP1");    // setup 24 bits bitmap structure    // works on 8 bits bitmaps also!    BITMAPINFO info;    BITMAPINFOHEADER header;    header.biSize = sizeof(BITMAPINFOHEADER);    header.biWidth = 100;    header.biHeight = 100;    header.biPlanes = 1;    header.biBitCount = 24;    header.biCompression = BI_RGB;    header.biSizeImage = 0;    header.biClrUsed = 0;    header.biClrImportant = 0;    info.bmiHeader = header;    info.bmiColors->rgbRed = NULL;    info.bmiColors->rgbGreen = NULL;    info.bmiColors->rgbBlue = NULL;    info.bmiColors->rgbReserved = NULL;    // store bitmap data in a vector    const int sizeww = (100*100)*3;    GLubyte data[sizeww];    hDC = GetDC(hwnd);    GetDIBits(hDC, bitmap, 0, 100, &data, &info, DIB_RGB_COLORS);    ReleaseDC(hwnd,hDC);    // convert from BGR to RGB    GLubyte buff;    int i = 0;    for(i = 0; i< 100*100; i++)    {        printf("%d, %d, %d\n", data[i*3], data[i*3+1], data[i*3+2]);        buff = data[i*3];        if(i>=3)        {            data[i*3] = data[(i*3)+2];            data[(i*3)+2] = buff;        }    }    glGenTextures(1, &texture[0]); // Create The Texture    // Build Texture    // Typical Texture Generation Using Data From The Bitmap    glBindTexture(GL_TEXTURE_2D, texture[0]);    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);    // Generate The Texture    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);    glTexEnvf ( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 100, 100, 0, GL_RGB, GL_UNSIGNED_BYTE, data);    return 0;}

 Quando eu executo o programa aparece o seguinte:

post-704106-0-74553600-1395533688_thumb.

 A textura que eu tentei carregar foi esta:

line.bmp

 Porque que quando eu carrego a textura ela aparece em um tamanho pequeno sendo que na função glTexCoord2f eu coloque o tamanho inteiro da imagem (100x100), vejam o código que usei para desenhar na tela:

            glEnable(GL_TEXTURE);            glEnable(GL_TEXTURE_2D);            LoadGLTextures();            glBegin(GL_QUADS);                glTexCoord2f(1.0, 0.0);      glVertex2f(-1.0f,   1.0f);                glTexCoord2f(100.0, 0.0);    glVertex2f(5.5f,  1.0f);                glTexCoord2f(100.0, 100.0);  glVertex2f(5.5f, -5.5f);                glTexCoord2f(1.0, 100.0);    glVertex2f(-1.0f, -5.5f);            glEnd(); 

 A minha imagem tem o tamanho de 100x100 e é bitmap de 24 bits.

 

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...