Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Príspevok NapísalOffline : 24.05.2008 20:06

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
Príspevok NapísalOffline : 25.05.2008 10:00

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
Príspevok Napísal autor témyOffline : 25.05.2008 10:11

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
Príspevok Napísal autor témyOffline : 26.05.2008 13:38

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
Príspevok NapísalOffline : 30.05.2008 15:03

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


Odpovedať na tému [ Príspevkov: 5 ] 


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

401

08.06.2012 15:06

99miso99 Zobrazenie posledných príspevkov

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

v ATI/AMD grafické karty

17

1082

13.03.2008 17:19

sapphyr Zobrazenie posledných príspevkov

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

v ATI/AMD grafické karty

29

1321

25.03.2008 10:37

sapphyr Zobrazenie posledných príspevkov

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

v Ostatné grafické karty

2

953

22.09.2009 9:12

mr_HANN Zobrazenie posledných príspevkov

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

v Počítačové hry

5

491

06.08.2012 13:21

Wahiro Zobrazenie posledných príspevkov

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 Zobrazenie posledných príspevkov

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

v nVidia grafické karty

9

589

25.01.2012 14:25

laloo Zobrazenie posledných príspevkov

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

v Počítačové hry

1

400

20.05.2011 22:49

Jeffo Zobrazenie posledných príspevkov

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

967

05.05.2013 18:02

Icehammer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pri hre sa mi nezobrazuju textury.

v nVidia grafické karty

2

450

01.05.2009 15:52

void Zobrazenie posledných príspevkov

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 Zobrazenie posledných príspevkov

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

1055

01.03.2009 21:16

romanlv12 Zobrazenie posledných príspevkov

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

1766

16.04.2009 14:28

br4n0 Zobrazenie posledných príspevkov

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 Zobrazenie posledných príspevkov

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

1328

29.05.2019 11:48

Jaro_N Zobrazenie posledných príspevkov

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

2812

26.02.2011 11:36

000kiko000 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra