[ Príspevkov: 5 ] 
AutorSpráva
Offline

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

Registrovaný: 22.07.09
Prihlásený: 01.12.09
Príspevky: 6
Témy: 2 | 2

Zdravim, snazim sa niecomu priucit z OpenGL pomocou NeHe tutorialov, stiahol som si zo stranky aj zdrojove kody, a zatial vsetky slapali bez problemov, kym som neprisiel na 6. lekciu. Tam mi pri kompilacii povyskakovalo 19 errorov a nemam usenia ako sa ich zbavit........

error C2143: syntax error : missing ';' before '*'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C3861: 'auxDIBImageLoad': identifier not found
error C2065: 'TextureImage' : undeclared identifier
error C2065: 'TextureImage' : undeclared identifier
error C2065: 'TextureImage' : undeclared identifier
error C2065: 'TextureImage' : undeclared identifier
error C2227: left of '->sizeX' must point to class/struct/union/generic type
error C2065: 'TextureImage' : undeclared identifier
error C2227: left of '->sizeY' must point to class/struct/union/generic type
error C2065: 'TextureImage' : undeclared identifier
error C2227: left of '->data' must point to class/struct/union/generic type
error C2065: 'TextureImage' : undeclared identifier
error C2065: 'TextureImage' : undeclared identifier
error C2227: left of '->data' must point to class/struct/union/generic type
error C2065: 'TextureImage' : undeclared identifier
error C2227: left of '->data' must point to class/struct/union/generic type
error C2065: 'TextureImage' : undeclared identifier


Kód:
/*
 *      This Code Was Created By Jeff Molofee 2000
 *      A HUGE Thanks To Fredric Echols For Cleaning Up
 *      And Optimizing The Base Code, Making It More Flexible!
 *      If You've Found This Code Useful, Please Let Me Know.
 *      Visit My Site At nehe.gamedev.net
 */

#include <windows.h>      // Header File For Windows
#include <stdio.h>         // Header File For Standard Input/Output
#include <gl\gl.h>         // Header File For The OpenGL32 Library
#include <gl\glu.h>         // Header File For The GLu32 Library
//#include <gl\glaux.h>      // Header File For The Glaux Library

HDC         hDC=NULL;      // Private GDI Device Context
HGLRC      hRC=NULL;      // Permanent Rendering Context
HWND      hWnd=NULL;      // Holds Our Window Handle
HINSTANCE   hInstance;      // Holds The Instance Of The Application

bool   keys[256];         // Array Used For The Keyboard Routine
bool   active=TRUE;      // Window Active Flag Set To TRUE By Default
bool   fullscreen=TRUE;   // Fullscreen Flag Set To Fullscreen Mode By Default

GLfloat   xrot;            // X Rotation ( NEW )
GLfloat   yrot;            // Y Rotation ( NEW )
GLfloat   zrot;            // Z Rotation ( NEW )

GLuint   texture[1];         // Storage For One Texture ( NEW )

LRESULT   CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);   // Declaration For WndProc

AUX_RGBImageRec *LoadBMP(char *Filename)            // Loads A Bitmap Image
{
   FILE *File=NULL;                           // File Handle

   if (!Filename)                              // Make Sure A Filename Was Given
   {
      return NULL;                           // If Not Return NULL
   }

   File=fopen(Filename,"r");                     // Check To See If The File Exists

   if (File)                                 // Does The File Exist?
   {
      fclose(File);                           // Close The Handle
      return auxDIBImageLoad(Filename);            // Load The Bitmap And Return A Pointer
   }

   return NULL;                              // If Load Failed Return NULL
}

int LoadGLTextures()                           // Load Bitmaps And Convert To Textures
{
   int Status=FALSE;                           // Status Indicator

   AUX_RGBImageRec *TextureImage[1];               // Create Storage Space For The Texture

   memset(TextureImage,0,sizeof(void *)*1);              // Set The Pointer To NULL

   // Load The Bitmap, Check For Errors, If Bitmap's Not Found Quit
   if (TextureImage[0]=LoadBMP("Data/NeHe.bmp"))
   {
      Status=TRUE;                           // Set The Status To TRUE

      glGenTextures(1, &texture[0]);               // Create The Texture

      // Typical Texture Generation Using Data From The Bitmap
      glBindTexture(GL_TEXTURE_2D, texture[0]);
      glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
      glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
      glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
   }

   if (TextureImage[0])                           // If Texture Exists
   {
      if (TextureImage[0]->data)                     // If Texture Image Exists
      {
         free(TextureImage[0]->data);               // Free The Texture Image Memory
      }

      free(TextureImage[0]);                        // Free The Image Structure
   }

   return Status;                              // Return The Status
}

GLvoid ReSizeGLScene(GLsizei width, GLsizei height)      // Resize And Initialize The GL Window
{
   if (height==0)                              // Prevent A Divide By Zero By
   {
      height=1;                              // Making Height Equal One
   }

   glViewport(0,0,width,height);                  // Reset The Current Viewport

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

   // Calculate The Aspect Ratio Of The Window
   gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);

   glMatrixMode(GL_MODELVIEW);                     // Select The Modelview Matrix
   glLoadIdentity();                           // Reset The Modelview Matrix
}

int InitGL(GLvoid)                              // All Setup For OpenGL Goes Here
{
   if (!LoadGLTextures())                        // Jump To Texture Loading Routine ( NEW )
   {
      return FALSE;                           // If Texture Didn't Load Return FALSE
   }

   glEnable(GL_TEXTURE_2D);                     // Enable Texture Mapping ( NEW )
   glShadeModel(GL_SMOOTH);                     // Enable Smooth Shading
   glClearColor(0.0f, 0.0f, 0.0f, 0.5f);            // Black Background
   glClearDepth(1.0f);                           // Depth Buffer Setup
   glEnable(GL_DEPTH_TEST);                     // Enables Depth Testing
   glDepthFunc(GL_LEQUAL);                        // The Type Of Depth Testing To Do
   glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);   // Really Nice Perspective Calculations
   return TRUE;                              // Initialization Went OK
}

int DrawGLScene(GLvoid)                           // Here's Where We Do All The Drawing
{
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);   // Clear The Screen And The Depth Buffer
   glLoadIdentity();                           // Reset The View
   glTranslatef(0.0f,0.0f,-5.0f);

   glRotatef(xrot,1.0f,0.0f,0.0f);
   glRotatef(yrot,0.0f,1.0f,0.0f);
   glRotatef(zrot,0.0f,0.0f,1.0f);

   glBindTexture(GL_TEXTURE_2D, texture[0]);

   glBegin(GL_QUADS);
      // Front Face
      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);
      // Back Face
      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);
      // Top Face
      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);
      // Bottom Face
      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);
      // Right face
      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);
      // Left Face
      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();

   xrot+=0.3f;
   yrot+=0.2f;
   zrot+=0.4f;
   return TRUE;                              // Keep Going
}

GLvoid KillGLWindow(GLvoid)                        // Properly Kill The Window
{
   if (fullscreen)                              // Are We In Fullscreen Mode?
   {
      ChangeDisplaySettings(NULL,0);               // If So Switch Back To The Desktop
      ShowCursor(TRUE);                        // Show Mouse Pointer
   }

   if (hRC)                                 // Do We Have A Rendering Context?
   {
      if (!wglMakeCurrent(NULL,NULL))               // Are We Able To Release The DC And RC Contexts?
      {
         MessageBox(NULL,"Release Of DC And RC Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
      }

      if (!wglDeleteContext(hRC))                  // Are We Able To Delete The RC?
      {
         MessageBox(NULL,"Release Rendering Context Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
      }
      hRC=NULL;                              // Set RC To NULL
   }

   if (hDC && !ReleaseDC(hWnd,hDC))               // Are We Able To Release The DC
   {
      MessageBox(NULL,"Release Device Context Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
      hDC=NULL;                              // Set DC To NULL
   }

   if (hWnd && !DestroyWindow(hWnd))               // Are We Able To Destroy The Window?
   {
      MessageBox(NULL,"Could Not Release hWnd.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
      hWnd=NULL;                              // Set hWnd To NULL
   }

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

/*   This Code Creates Our OpenGL Window.  Parameters Are:               *
 *   title         - Title To Appear At The Top Of The Window            *
 *   width         - Width Of The GL Window Or Fullscreen Mode            *
 *   height         - Height Of The GL Window Or Fullscreen Mode         *
 *   bits         - Number Of Bits To Use For Color (8/16/24/32)         *
 *   fullscreenflag   - Use Fullscreen Mode (TRUE) Or Windowed Mode (FALSE)   */
 
BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag)
{
   GLuint      PixelFormat;         // Holds The Results After Searching For A Match
   WNDCLASS   wc;                  // Windows Class Structure
   DWORD      dwExStyle;            // Window Extended Style
   DWORD      dwStyle;            // Window Style
   RECT      WindowRect;            // Grabs Rectangle Upper Left / Lower Right Values
   WindowRect.left=(long)0;         // Set Left Value To 0
   WindowRect.right=(long)width;      // Set Right Value To Requested Width
   WindowRect.top=(long)0;            // Set Top Value To 0
   WindowRect.bottom=(long)height;      // Set Bottom Value To Requested Height

   fullscreen=fullscreenflag;         // Set The Global Fullscreen Flag

   hInstance         = GetModuleHandle(NULL);            // Grab An Instance For Our Window
   wc.style         = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;   // Redraw On Size, And Own DC For Window.
   wc.lpfnWndProc      = (WNDPROC) WndProc;               // WndProc Handles Messages
   wc.cbClsExtra      = 0;                           // No Extra Window Data
   wc.cbWndExtra      = 0;                           // No Extra Window Data
   wc.hInstance      = hInstance;                     // Set The Instance
   wc.hIcon         = LoadIcon(NULL, IDI_WINLOGO);         // Load The Default Icon
   wc.hCursor         = LoadCursor(NULL, IDC_ARROW);         // Load The Arrow Pointer
   wc.hbrBackground   = NULL;                           // No Background Required For GL
   wc.lpszMenuName      = NULL;                           // We Don't Want A Menu
   wc.lpszClassName   = "OpenGL";                        // Set The Class Name

   if (!RegisterClass(&wc))                           // Attempt To Register The Window Class
   {
      MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;                                 // Return FALSE
   }
   
   if (fullscreen)                                    // Attempt Fullscreen Mode?
   {
      DEVMODE dmScreenSettings;                        // Device Mode
      memset(&dmScreenSettings,0,sizeof(dmScreenSettings));   // Makes Sure Memory's Cleared
      dmScreenSettings.dmSize=sizeof(dmScreenSettings);      // Size Of The Devmode Structure
      dmScreenSettings.dmPelsWidth   = width;            // Selected Screen Width
      dmScreenSettings.dmPelsHeight   = height;            // Selected Screen Height
      dmScreenSettings.dmBitsPerPel   = bits;               // Selected Bits Per Pixel
      dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;

      // Try To Set Selected Mode And Get Results.  NOTE: CDS_FULLSCREEN Gets Rid Of Start Bar.
      if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL)
      {
         // If The Mode Fails, Offer Two Options.  Quit Or Use Windowed Mode.
         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;      // Windowed Mode Selected.  Fullscreen = FALSE
         }
         else
         {
            // Pop Up A Message Box Letting User Know The Program Is Closing.
            MessageBox(NULL,"Program Will Now Close.","ERROR",MB_OK|MB_ICONSTOP);
            return FALSE;                           // Return FALSE
         }
      }
   }

   if (fullscreen)                                    // Are We Still In Fullscreen Mode?
   {
      dwExStyle=WS_EX_APPWINDOW;                        // Window Extended Style
      dwStyle=WS_POPUP;                              // Windows Style
      ShowCursor(FALSE);                              // Hide Mouse Pointer
   }
   else
   {
      dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;         // Window Extended Style
      dwStyle=WS_OVERLAPPEDWINDOW;                     // Windows Style
   }

   AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle);      // Adjust Window To True Requested Size

   // Create The Window
   if (!(hWnd=CreateWindowEx(   dwExStyle,                     // Extended Style For The Window
                        "OpenGL",                     // Class Name
                        title,                        // Window Title
                        dwStyle |                     // Defined Window Style
                        WS_CLIPSIBLINGS |               // Required Window Style
                        WS_CLIPCHILDREN,               // Required Window Style
                        0, 0,                        // Window Position
                        WindowRect.right-WindowRect.left,   // Calculate Window Width
                        WindowRect.bottom-WindowRect.top,   // Calculate Window Height
                        NULL,                        // No Parent Window
                        NULL,                        // No Menu
                        hInstance,                     // Instance
                        NULL)))                        // Dont Pass Anything To WM_CREATE
   {
      KillGLWindow();                        // Reset The Display
      MessageBox(NULL,"Window Creation Error.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;                        // Return FALSE
   }

   static   PIXELFORMATDESCRIPTOR pfd=            // pfd Tells Windows How We Want Things To Be
   {
      sizeof(PIXELFORMATDESCRIPTOR),            // Size Of This Pixel Format Descriptor
      1,                                 // Version Number
      PFD_DRAW_TO_WINDOW |                  // Format Must Support Window
      PFD_SUPPORT_OPENGL |                  // Format Must Support OpenGL
      PFD_DOUBLEBUFFER,                     // Must Support Double Buffering
      PFD_TYPE_RGBA,                        // Request An RGBA Format
      bits,                              // Select Our Color Depth
      0, 0, 0, 0, 0, 0,                     // Color Bits Ignored
      0,                                 // No Alpha Buffer
      0,                                 // Shift Bit Ignored
      0,                                 // No Accumulation Buffer
      0, 0, 0, 0,                           // Accumulation Bits Ignored
      16,                                 // 16Bit Z-Buffer (Depth Buffer) 
      0,                                 // No Stencil Buffer
      0,                                 // No Auxiliary Buffer
      PFD_MAIN_PLANE,                        // Main Drawing Layer
      0,                                 // Reserved
      0, 0, 0                              // Layer Masks Ignored
   };
   
   if (!(hDC=GetDC(hWnd)))                     // Did We Get A Device Context?
   {
      KillGLWindow();                        // Reset The Display
      MessageBox(NULL,"Can't Create A GL Device Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;                        // Return FALSE
   }

   if (!(PixelFormat=ChoosePixelFormat(hDC,&pfd)))   // Did Windows Find A Matching Pixel Format?
   {
      KillGLWindow();                        // Reset The Display
      MessageBox(NULL,"Can't Find A Suitable PixelFormat.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;                        // Return FALSE
   }

   if(!SetPixelFormat(hDC,PixelFormat,&pfd))      // Are We Able To Set The Pixel Format?
   {
      KillGLWindow();                        // Reset The Display
      MessageBox(NULL,"Can't Set The PixelFormat.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;                        // Return FALSE
   }

   if (!(hRC=wglCreateContext(hDC)))            // Are We Able To Get A Rendering Context?
   {
      KillGLWindow();                        // Reset The Display
      MessageBox(NULL,"Can't Create A GL Rendering Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;                        // Return FALSE
   }

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

   ShowWindow(hWnd,SW_SHOW);                  // Show The Window
   SetForegroundWindow(hWnd);                  // Slightly Higher Priority
   SetFocus(hWnd);                           // Sets Keyboard Focus To The Window
   ReSizeGLScene(width, height);               // Set Up Our Perspective GL Screen

   if (!InitGL())                           // Initialize Our Newly Created GL Window
   {
      KillGLWindow();                        // Reset The Display
      MessageBox(NULL,"Initialization Failed.","ERROR",MB_OK|MB_ICONEXCLAMATION);
      return FALSE;                        // Return FALSE
   }

   return TRUE;                           // Success
}

LRESULT CALLBACK WndProc(   HWND   hWnd,         // Handle For This Window
                     UINT   uMsg,         // Message For This Window
                     WPARAM   wParam,         // Additional Message Information
                     LPARAM   lParam)         // Additional Message Information
{
   switch (uMsg)                           // Check For Windows Messages
   {
      case WM_ACTIVATE:                     // Watch For Window Activate Message
      {
         if (!HIWORD(wParam))               // Check Minimization State
         {
            active=TRUE;                  // Program Is Active
         }
         else
         {
            active=FALSE;                  // Program Is No Longer Active
         }

         return 0;                        // Return To The Message Loop
      }

      case WM_SYSCOMMAND:                     // Intercept System Commands
      {
         switch (wParam)                     // Check System Calls
         {
            case SC_SCREENSAVE:               // Screensaver Trying To Start?
            case SC_MONITORPOWER:            // Monitor Trying To Enter Powersave?
            return 0;                     // Prevent From Happening
         }
         break;                           // Exit
      }

      case WM_CLOSE:                        // Did We Receive A Close Message?
      {
         PostQuitMessage(0);                  // Send A Quit Message
         return 0;                        // Jump Back
      }

      case WM_KEYDOWN:                     // Is A Key Being Held Down?
      {
         keys[wParam] = TRUE;               // If So, Mark It As TRUE
         return 0;                        // Jump Back
      }

      case WM_KEYUP:                        // Has A Key Been Released?
      {
         keys[wParam] = FALSE;               // If So, Mark It As FALSE
         return 0;                        // Jump Back
      }

      case WM_SIZE:                        // Resize The OpenGL Window
      {
         ReSizeGLScene(LOWORD(lParam),HIWORD(lParam));  // LoWord=Width, HiWord=Height
         return 0;                        // Jump Back
      }
   }

   // Pass All Unhandled Messages To DefWindowProc
   return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

int WINAPI WinMain(   HINSTANCE   hInstance,         // Instance
               HINSTANCE   hPrevInstance,      // Previous Instance
               LPSTR      lpCmdLine,         // Command Line Parameters
               int         nCmdShow)         // Window Show State
{
   MSG      msg;                           // Windows Message Structure
   BOOL   done=FALSE;                        // Bool Variable To Exit Loop

   // Ask The User Which Screen Mode They Prefer
   if (MessageBox(NULL,"Would You Like To Run In Fullscreen Mode?", "Start FullScreen?",MB_YESNO|MB_ICONQUESTION)==IDNO)
   {
      fullscreen=FALSE;                     // Windowed Mode
   }

   // Create Our OpenGL Window
   if (!CreateGLWindow("NeHe's Texture Mapping Tutorial",640,480,16,fullscreen))
   {
      return 0;                           // Quit If Window Was Not Created
   }

   while(!done)                           // Loop That Runs While done=FALSE
   {
      if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))   // Is There A Message Waiting?
      {
         if (msg.message==WM_QUIT)            // Have We Received A Quit Message?
         {
            done=TRUE;                     // If So done=TRUE
         }
         else                           // If Not, Deal With Window Messages
         {
            TranslateMessage(&msg);            // Translate The Message
            DispatchMessage(&msg);            // Dispatch The Message
         }
      }
      else                              // If There Are No Messages
      {
         // Draw The Scene.  Watch For ESC Key And Quit Messages From DrawGLScene()
         if ((active && !DrawGLScene()) || keys[VK_ESCAPE])   // Active?  Was There A Quit Received?
         {
            done=TRUE;                     // ESC or DrawGLScene Signalled A Quit
         }
         else                           // Not Time To Quit, Update Screen
         {
            SwapBuffers(hDC);               // Swap Buffers (Double Buffering)
         }

         if (keys[VK_F1])                  // Is F1 Being Pressed?
         {
            keys[VK_F1]=FALSE;               // If So Make Key FALSE
            KillGLWindow();                  // Kill Our Current Window
            fullscreen=!fullscreen;            // Toggle Fullscreen / Windowed Mode
            // Recreate Our OpenGL Window
            if (!CreateGLWindow("NeHe's Texture Mapping Tutorial",640,480,16,fullscreen))
            {
               return 0;                  // Quit If Window Was Not Created
            }
         }
      }
   }

   // Shutdown
   KillGLWindow();                           // Kill The Window
   return (msg.wParam);                     // Exit The Program
}


dik za pomoc


Offline

Užívateľ
Užívateľ
OpenGL + Visual C++ 2008 Express Edition

Registrovaný: 02.11.07
Prihlásený: 18.03.15
Príspevky: 470
Témy: 22 | 22
Bydlisko: Zilinska Un...

Ja som tu niekde nizzsie uz jednemu typkovi daval svoje zdrojaky, z cias mojich zaciatkov :), co som ja robil, tak tu pokukaj, Nehe tutorialy obsahuju vela veci, ale tie zdrojaky tam su neprofesionalne, su len na vysvetlenie, Ja robim v linuxe a v Eclipse, tak ti chybu nenajdem, lebo to tak zaras nerozbeham, nemam cas :) :) ,


_________________
Notebook: HP EliteBook 8740w
You can see my work in my www
Offline

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

Registrovaný: 22.07.09
Prihlásený: 01.12.09
Príspevky: 6
Témy: 2 | 2
Napísal autor témyOffline : 03.08.2009 12:13 | OpenGL + Visual C++ 2008 Express Edition

Ja mam tiez nahodene Ubuntu 9.04 a aj Eclipse, len ta konfiguracia sa mi zdala troska komplikovana tak som to kompiloval vo Visual C++ 2008....


Offline

Užívateľ
Užívateľ
OpenGL + Visual C++ 2008 Express Edition

Registrovaný: 02.11.07
Prihlásený: 18.03.15
Príspevky: 470
Témy: 22 | 22
Bydlisko: Zilinska Un...

Ja pouzivam fedoru, tam ti staci doinstalovat par veci a pojde to aj v linuxe, nie je to tam nic zlozite, hlavne abi si rozbehal 3D na grafike, odporucam nvidiu grafiku :).


_________________
Notebook: HP EliteBook 8740w
You can see my work in my www
Offline

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

Registrovaný: 10.07.09
Prihlásený: 14.01.13
Príspevky: 28
Témy: 3 | 3
NapísalOffline : 03.08.2009 18:21 | OpenGL + Visual C++ 2008 Express Edition

Nazdar. Chybu mas tam, ze pouzivas clasu, alebo strukturu, ktorej hlavickovy subor nemas include-nuty. Ja si myslim, ze to bude 'bmp.h'. Vyskusaj na zaciatok dat include "bmp.h"


 [ Príspevkov: 5 ] 


OpenGL + Visual C++ 2008 Express Edition



Podobné témy

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

SDL v Visual C++ 2008 Express Edition

v Assembler, C, C++, Pascal, Java

1

704

22.02.2009 23:13

ewil

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

"error C2065" vo VS C++ 2008 express edition

v Assembler, C, C++, Pascal, Java

3

504

27.11.2009 15:41

ado21

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

OpenGL vo Visual Studio Express 2012

v Assembler, C, C++, Pascal, Java

3

455

13.07.2013 18:34

Xperience

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

Otvorenie .exe v Visual Basic 2008 Express

v Delphi, Visual Basic

1

815

14.02.2009 22:05

eragon124

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

chyba Microsoft visual C++ 2008

v Ostatné programy

4

1096

19.11.2010 0:29

sync2

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

MS Visual C++ 2008 - chyba

v Assembler, C, C++, Pascal, Java

2

533

01.03.2010 20:17

Megi

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

Visual studio C++ 2010 Express

v Assembler, C, C++, Pascal, Java

21

1261

15.11.2010 17:33

Johnnny

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

Chyba s Linkerom vo visual c++ 2008

v Assembler, C, C++, Pascal, Java

1

385

15.03.2010 19:31

_FleXoR_

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

Microsoft Visual Studio 2010 Express - C++

v Assembler, C, C++, Pascal, Java

4

1739

11.12.2012 15:28

tunco

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

Visual C++ 2008 použitie classu z class library

v Assembler, C, C++, Pascal, Java

0

277

19.11.2011 14:29

Loko11

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

Pridanie neštandardnej knižnice visual c++ 2010 Express

v Assembler, C, C++, Pascal, Java

1

390

03.01.2013 13:40

BX

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

Visual Basic 2008

v Ostatné programy

2

802

06.04.2009 13:34

Ominous

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

Visual Basic 2008 tiene

v Delphi, Visual Basic

3

724

27.04.2010 22:13

Patkoo

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

visual basic 2008 textbox

v Delphi, Visual Basic

2

726

02.01.2010 17:37

eragon124

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

OpenFileDialog vo Visual Basic 2008

v Delphi, Visual Basic

17

3291

15.08.2011 18:59

marian_sk

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

[C] C a OpenGL - vysvetlenie

v Assembler, C, C++, Pascal, Java

4

640

21.04.2009 21:21

reDo



© 2005 - 2024 PCforum, edited by JanoF