[ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 08.04.08
Prihlásený: 25.05.08
Príspevky: 18
Témy: 6 | 6
NapísalOffline : 24.05.2008 20:06 | Chyba textury

zdravim,
po kompilacii zdrojaku mi vybehne chyba

Failed to openDIB file textura.bmp.

textura ma rozmery 200*200px. co s tym?


Offline

Užívateľ
Užívateľ
Chyba textury

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1 | 1
NapísalOffline : 25.05.2008 10:00 | Chyba textury

zišiel by sa zdroják...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 08.04.08
Prihlásený: 25.05.08
Príspevky: 18
Témy: 6 | 6
Napísal autor témyOffline : 25.05.2008 10:11 | Chyba textury

vyriesene


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 08.04.08
Prihlásený: 25.05.08
Príspevky: 18
Témy: 6 | 6
Napísal autor témyOffline : 26.05.2008 13:38 | Chyba textury

tak teda nie ... :) tu je zdrojak.. a mam pocit ze to bude nejaka chyba v suradniciach textury TexCoord.. neviem. diky za rady.
Kód:
#include <windows.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <stdio.h>
#include <gl\glaux.h>



HDC         hDC=NULL;
HGLRC      hRC=NULL;
HWND      hWnd=NULL;
HINSTANCE   hInstance;

bool   keys[256];
bool   active=TRUE;
bool   fullscreen=TRUE;






LRESULT   CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

GLvoid ReSizeGLScene(GLsizei width, GLsizei height)
{
   if (height==0)
   {
      height=1;
   }

   glViewport(0,0,width,height);

   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();


   gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);

   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
}

UINT bachlev;

void createTexture(char* sPath, UINT* uiStorage)
{
    AUX_RGBImageRec* pBitmap = auxDIBImageLoad(sPath);
    glGenTextures(1, uiStorage);
    glBindTexture(GL_TEXTURE_2D, *uiStorage);
    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, 3, pBitmap->sizeX, pBitmap->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, pBitmap->data);
}

int InitGL(GLvoid)
{
   glShadeModel(GL_SMOOTH);
   glEnable(GL_TEXTURE_2D);
   glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
   glClearDepth(1.0f);
   glEnable(GL_DEPTH_TEST);
   glDepthFunc(GL_LEQUAL);
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);


    glEnable(GL_TEXTURE_2D);
    createTexture("textura.bmp", &bachlev); // vytvor texturu z textura.bmp a uloz ju do premennej bachlev

   return TRUE;
}

int DrawGLScene(GLvoid)
{
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
   glLoadIdentity();

    static float bach = 0.0f, lev = 0.0f;
    if(keys[VK_LEFT])bach -= 0.03f;
    if(keys[VK_RIGHT])bach += 0.03f;
    if(keys[VK_UP])lev += 0.03f;
    if(keys[VK_DOWN])lev -= 0.03f;
    glTranslatef(bach, lev, -10);



    glBindTexture(GL_TEXTURE_2D, bachlev);
    glColor3ub(255, 255, 255);

    glBegin(GL_QUADS);
    glNormal3f( 0.0f, 0.0f, 1.0f);
    glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f);
    glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f);
    glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f);
    glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f);
    glNormal3f( 0.0f, 0.0f,-1.0f);
    glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);
    glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, 1.0f, -1.0f);
    glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, 1.0f, -1.0f);
    glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);
    glNormal3f( 0.0f, 1.0f, 0.0f);
    glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, -1.0f);
    glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, 1.0f, 1.0f);
    glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, 1.0f, 1.0f);
    glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, -1.0f);
    glNormal3f( 0.0f,-1.0f, 0.0f);
    glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, -1.0f, -1.0f);
    glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, -1.0f, -1.0f);
    glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f);
    glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f);
    glNormal3f( 1.0f, 0.0f, 0.0f);
    glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);
    glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, -1.0f);
    glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f);
    glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f);
    glNormal3f(-1.0f, 0.0f, 0.0f);
    glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);
    glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f);
    glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f);
    glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, -1.0f);
    glEnd();

    return TRUE;
}

GLvoid KillGLWindow(GLvoid)
{
   if (fullscreen)
   {
      ChangeDisplaySettings(NULL,0);
        ShowCursor(TRUE);
   }

   if (hRC)
   {
      if (!wglMakeCurrent(NULL,NULL))
      {
         MessageBox(NULL,"Release Of DC And RC Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
      }

      if (!wglDeleteContext(hRC))
      {
         MessageBox(NULL,"Release Rendering Context Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
      }
      hRC=NULL;
   }

   if (hDC && !ReleaseDC(hWnd,hDC))
   {
      MessageBox(NULL,"Release Device Context Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
      hDC=NULL;
   }

   if (hWnd && !DestroyWindow(hWnd))
   {
      MessageBox(NULL,"Could Not Release hWnd.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
      hWnd=NULL;
   }

   if (!UnregisterClass("OpenGL",hInstance))
   {
      MessageBox(NULL,"Could Not Unregister Class.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
      hInstance=NULL;
   }
}


BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag)
{
   GLuint      PixelFormat;
   WNDCLASS   wc;
   DWORD      dwExStyle;
   DWORD      dwStyle;
   RECT      WindowRect;
   WindowRect.left=(long)0;
   WindowRect.right=(long)width;
   WindowRect.top=(long)0;
   WindowRect.bottom=(long)height;

   fullscreen=fullscreenflag;

   hInstance         = GetModuleHandle(NULL);
   wc.style         = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
   wc.lpfnWndProc      = (WNDPROC) WndProc;
   wc.cbClsExtra      = 0;
   wc.cbWndExtra      = 0;
   wc.hInstance      = hInstance;
   wc.hIcon         = LoadIcon(NULL, IDI_WINLOGO);
   wc.hCursor         = LoadCursor(NULL, IDC_ARROW);
   wc.hbrBackground   = NULL;
   wc.lpszMenuName      = NULL;
   wc.lpszClassName   = "OpenGL";
   if (!RegisterClass(&wc))
   {
      MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;
   }

   if (fullscreen)
   {
      DEVMODE dmScreenSettings;
      memset(&dmScreenSettings,0,sizeof(dmScreenSettings));
      dmScreenSettings.dmSize=sizeof(dmScreenSettings);
      dmScreenSettings.dmPelsWidth   = width;
      dmScreenSettings.dmPelsHeight   = height;
      dmScreenSettings.dmBitsPerPel   = bits;
      dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;


      if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL)
      {

         if (MessageBox(NULL,"The Requested Fullscreen Mode Is Not Supported By\nYour Video Card. Use Windowed Mode Instead?","NeHe GL",MB_YESNO|MB_ICONEXCLAMATION)==IDYES)
         {
            fullscreen=FALSE;
         }
         else
         {

            MessageBox(NULL,"Program Will Now Close.","ERROR",MB_OK|MB_ICONSTOP);
            return FALSE;
         }
      }
   }

   if (fullscreen)
   {
      dwExStyle=WS_EX_APPWINDOW;
      dwStyle=WS_POPUP;
      ShowCursor(FALSE);
   }
   else
   {
      dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
      dwStyle=WS_OVERLAPPEDWINDOW;
   }

   AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle);


   if (!(hWnd=CreateWindowEx(   dwExStyle,
                        "OpenGL",
                        title,
                        dwStyle |
                        WS_CLIPSIBLINGS |
                        WS_CLIPCHILDREN,
                        0, 0,
                        WindowRect.right-WindowRect.left,
                        WindowRect.bottom-WindowRect.top,
                        NULL,
                        NULL,
                        hInstance,
                        NULL)))
   {
      KillGLWindow();
      MessageBox(NULL,"Window Creation Error.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;
   }

   static   PIXELFORMATDESCRIPTOR pfd=
   {
      sizeof(PIXELFORMATDESCRIPTOR),
      1,
      PFD_DRAW_TO_WINDOW |
      PFD_SUPPORT_OPENGL |
      PFD_DOUBLEBUFFER,
      PFD_TYPE_RGBA,
      bits,
      0, 0, 0, 0, 0, 0,
      0,
      0,
      0,
      0, 0, 0, 0,
      16,
      0,
      0,
      PFD_MAIN_PLANE,
      0,
      0, 0, 0
   };

   if (!(hDC=GetDC(hWnd)))
   {
      KillGLWindow();
      MessageBox(NULL,"Can't Create A GL Device Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;
   }

   if (!(PixelFormat=ChoosePixelFormat(hDC,&pfd)))
   {
      KillGLWindow();
      MessageBox(NULL,"Can't Find A Suitable PixelFormat.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;
   }

   if(!SetPixelFormat(hDC,PixelFormat,&pfd))
   {
      KillGLWindow();
      MessageBox(NULL,"Can't Set The PixelFormat.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;
   }

   if (!(hRC=wglCreateContext(hDC)))
   {
      KillGLWindow();
      MessageBox(NULL,"Can't Create A GL Rendering Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;
   }

   if(!wglMakeCurrent(hDC,hRC))
   {
      KillGLWindow();
      MessageBox(NULL,"Can't Activate The GL Rendering Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;
   }

   ShowWindow(hWnd,SW_SHOW);
   SetForegroundWindow(hWnd);
   SetFocus(hWnd);
   ReSizeGLScene(width, height);

   if (!InitGL())
   {
      KillGLWindow();
      MessageBox(NULL,"Initialization Failed.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;
   }

   return TRUE;
}

LRESULT CALLBACK WndProc(   HWND   hWnd,
                     UINT   uMsg,
                     WPARAM   wParam,
                     LPARAM   lParam)
{
   switch (uMsg)
   {
      case WM_ACTIVATE:
      {
            active = !HIWORD(wParam);
         return 0;
      }

      case WM_SYSCOMMAND:
      {
         switch (wParam)
         {
            case SC_SCREENSAVE:
            case SC_MONITORPOWER:
            return 0;
         }
         break;
      }

      case WM_CLOSE:
      {
         PostQuitMessage(0);
         return 0;
      }

      case WM_KEYDOWN:
      {
         keys[wParam] = TRUE;
         return 0;
      }

      case WM_KEYUP:
      {
         keys[wParam] = FALSE;
         return 0;
      }

      case WM_SIZE:
      {
         ReSizeGLScene(LOWORD(lParam),HIWORD(lParam));
         return 0;
      }
   }
   return DefWindowProc(hWnd,uMsg,wParam,lParam);
}



int WINAPI WinMain(   HINSTANCE   hInstance, HINSTANCE   hPrevInstance, LPSTR lpCmdLine, int   nCmdShow)
{
   MSG      msg;
   BOOL   done=FALSE;


   if (MessageBox(NULL,"Would You Like To Run In Fullscreen Mode?", "Start FullScreen?",MB_YESNO|MB_ICONQUESTION)==IDNO)
   {
      fullscreen=FALSE;
   }


   if (!CreateGLWindow("NeHe's OpenGL Framework",640,480,16,fullscreen))
   {
      return 0;
   }

   while(!done)
   {
      if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
      {
         if (msg.message==WM_QUIT)
         {
            done=TRUE;
         }
         else
         {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
         }
      }
      else
      {
            if (active)
         {
            if (keys[VK_ESCAPE])
            {
               done=TRUE;
            }
            else
            {
               DrawGLScene();
               SwapBuffers(hDC);
            }
         }

         if (keys[VK_F1])
         {
            keys[VK_F1]=FALSE;
            KillGLWindow();
            fullscreen=!fullscreen;

            if (!CreateGLWindow("NeHe's OpenGL Framework",640,480,16,fullscreen))
            {
               return 0;
            }
         }
      }
   }

   KillGLWindow();
   return (msg.wParam);
}


Offline

Užívateľ
Užívateľ
Chyba textury

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1 | 1
NapísalOffline : 30.05.2008 15:03 | Chyba textury

Mne to funguje, akurát rozmery textúry by mali byť mocniny dvojky (napr. 256x256), inak môže nastať značné spomalenie.


 [ Príspevkov: 5 ] 


Chyba textury



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

chyba textury ATI RADEON HD4570

v ATI/AMD grafické karty

6

402

08.06.2012 15:06

99miso99

V tomto fóre nie sú ďalšie neprečítané témy.

textury

v ATI/AMD grafické karty

17

1083

13.03.2008 17:19

sapphyr

V tomto fóre nie sú ďalšie neprečítané témy.

Textury

v ATI/AMD grafické karty

29

1323

25.03.2008 10:37

sapphyr

V tomto fóre nie sú ďalšie neprečítané témy.

poskodene textury

v Ostatné grafické karty

2

954

22.09.2009 9:12

mr_HANN

V tomto fóre nie sú ďalšie neprečítané témy.

Rage textury

v Počítačové hry

5

492

06.08.2012 13:21

Wahiro

V tomto fóre nie sú ďalšie neprečítané témy.

zrazu vypadli textury...

v ATI/AMD grafické karty

5

437

12.09.2010 12:33

domino021

V tomto fóre nie sú ďalšie neprečítané témy.

Textury v hrách

v nVidia grafické karty

9

591

25.01.2012 14:25

laloo

V tomto fóre nie sú ďalšie neprečítané témy.

VBus A6C RC2 blbe textury

v Počítačové hry

1

402

20.05.2011 22:49

Jeffo

V tomto fóre nie sú ďalšie neprečítané témy.

Blikajúce textúry pri hre BattleField 3

v nVidia grafické karty

10

970

05.05.2013 18:02

Icehammer

V tomto fóre nie sú ďalšie neprečítané témy.

Pri hre sa mi nezobrazuju textury.

v nVidia grafické karty

2

451

01.05.2009 15:52

void

V tomto fóre nie sú ďalšie neprečítané témy.

POMOOC.Problem s ASUS 6600GT..VypinanieMonitoraAblbe textury

[ Choď na stránku:Choď na stránku: 1, 2 ]

v nVidia grafické karty

43

2598

18.03.2006 15:34

Shit

V tomto fóre nie sú ďalšie neprečítané témy.

GIGABYTE EN8600GT 512 Problem s hrami, rozhadzane textury

v nVidia grafické karty

20

1057

01.03.2009 21:16

romanlv12

V tomto fóre nie sú ďalšie neprečítané témy.

Co su to textury a polygony ked hovorime o tvoreni hier?

v Počítačové hry

15

1770

16.04.2009 14:28

br4n0

V tomto fóre nie sú ďalšie neprečítané témy.

Program na rozmiestnenie casti textury na dany objekt

v Grafické programy

3

407

16.08.2010 11:32

Ing.Florek

V tomto fóre nie sú ďalšie neprečítané témy.

Častá chyba načítania stránky (...dočasná chyba DNS).

v Poskytovatelia internetu

14

1332

29.05.2019 11:48

Jaro_N

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba 101 (net::ERR_CONNECTION_RESET): Neznáma chyba.

v Sieťové a internetové programy

0

2815

26.02.2011 11:36

000kiko000



© 2005 - 2024 PCforum, edited by JanoF