Programlamadili.Net Yeni Nesil Programlama Portali
Makale Ara: 
Kullanıcı Adı : Şifre :
  • Makale Kategorileri
Anasayfa
ACPI [0]
Action Script [5]
Ajax [7]
ASP [12]
ASP.NET [23]
Assembly [3]
Bash [1]
C [4]
C# [9]
C++ [10]
Cobol [1]
Delphi [31]
Flash [5]
Html [9]
JAVA [36]
Java Script [12]
JSF [2]
Jsp [5]
Lua [1]
Matlab [2]
MySQL [30]
Oracle [1]
Pascal [31]
Perl [4]
Photoshop [2]
PHP [150]
Python [8]
REXX [6]
Ruby [1]
SEO [5]
Visual Basic [37]
  • Gorsel Ders Kategorileri
Asp [25]
Asp.Net [5]
Csharp [33]
Delphi [3]
Fireworks [4]
Flash [10]
Java Script [0]
Photoshop [0]
PHP [54]
Vb.Net [9]
Visual Basic [4]
  • Dil
English
Deutsch
deutsch
  • Reklam Alani
C++ / C++ Programlama İle 3d Ekran Koruyusu
C++ Programlama İle 3d Ekran Koruyusu
Yazar: by_Coder
Eklenme: 06/04/08    Okunma: 392    
 
 

#include <windows.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glaux.h>
#include <stdio.h>
#include <math.h>

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

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

GLint   base,loop;
GLuint   texture[14];
GLUquadricObj *Obiekt1;

GLfloat roll,roll2;
GLfloat step=0.01f;
GLfloat step2=0.3f;
GLfloat rotate, rotateobiekt1,rotateobiekt2;
GLfloat angle,rotsat;
GLfloat RotateWenus;
GLfloat x,y;

GLfloat LightAmbient[]= { 0.05f, 0.05f, 0.05f, 1.0f };
GLfloat LightDiffuse[]= { 0.8f, 0.8f, 0.8f, 1.0f };
GLfloat LightPosition[]= { 10.0f, -10.0f, 10.0f, 1.0f };
GLfloat LightAmbient2[]= { 0.9f, 0.9f, 0.9f, 1.0f };

GLfloat roo;
GLfloat ro;
GLfloat ro2;
GLfloat alpha;
GLfloat alphaplus=0.0003f;

char *text_display[7] =
{
"           Ekran koruyucu tansalic@walla.com",
"           Hepiniz hos geldiniz...",
"     Bu proje benim ilk ekran koruyucu calismamdir",
    "     umarim begenir dostlarinizada hediye edersiniz",
    "                   SAYGILARIMLA !!!",
    "     tansalic@walla.com",
    ""
};
int   Tekst = 0;
int   TextSync = 0;

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

void Build_font(void)
{
int i;
float cx;
float cy;
base = glGenLists(256);
glBindTexture(GL_TEXTURE_2D, texture[4]);
for (i=0 ; i<256 ; i++) {                          
cx = float(i%16)/16.0f;
cy = float(i/16)/16.0f;
glNewList(base+i,GL_COMPILE);
glBegin(GL_QUADS);
glTexCoord2f(cx,1-cy-0.0625f);
glVertex2i(0,0);
glTexCoord2f(cx+0.0625f,1-cy-0.0625f);
glVertex2i(16,0);
glTexCoord2f(cx+0.0625f,1-cy);
glVertex2i(16,16);
glTexCoord2f(cx,1-cy);
glVertex2i(0,16);
glEnd();
glTranslated(10,0,0);
glEndList();
}
}


void KillFont(void)
{
glDeleteLists(base, 256);
}

void glPrint(GLint x, GLint y, char* string, int set)
{
if (set > 1) set = 1;
glBindTexture(GL_TEXTURE_2D, texture[4]);
glDisable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0,640,0,480,-100,100);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glTranslated(x,y,0);
glListBase(base-32+(128*set));
glCallLists(strlen(string),GL_BYTE,string);
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
glEnable(GL_DEPTH_TEST);
}
void Swiatlo(void)
{
    glLightfv(GL_LIGHT0, GL_AMBIENT, LightAmbient2);

    glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);
    glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);
    glLightfv(GL_LIGHT1, GL_POSITION,LightPosition);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHT1);
    glEnable(GL_LIGHT2);
    glEnable(GL_LIGHTING);
    glEnable(GL_COLOR_MATERIAL);
}

AUX_RGBImageRec *LoadBMP(char *Filename)                                      
{
        FILE *File=NULL;
        if (!Filename)                                                        
        {
                return NULL;                                                  
        }
        File=fopen(Filename,"r");
        if (File)                                                              
        {
            fclose(File);                                                
            return auxDIBImageLoad(Filename);                              
        }
    return NULL;
}
int LoadTextures()
{
    int Status = FALSE;
    AUX_RGBImageRec *TextureImage[14];
    memset(TextureImage, 0, sizeof(void *)*14);
    if ( (TextureImage[0]=LoadBMP("kosmos.bmp")) &&
        (TextureImage[1]=LoadBMP("belka.bmp"))   &&
        (TextureImage[2]=LoadBMP("ziemia.bmp"))&&        
(TextureImage[3]=LoadBMP("ksiezyc.bmp"))&&
        (TextureImage[4]=LoadBMP("fonty.bmp"))   &&
        (TextureImage[5]=LoadBMP("mars.bmp")) &&        
(TextureImage[6]=LoadBMP("wenus.bmp")) &&        
(TextureImage[7]=LoadBMP("merkury.bmp")) &&        
(TextureImage[8]=LoadBMP("satelitemaska.bmp")) &&
        (TextureImage[9]=LoadBMP("satelite.bmp")) &&
(TextureImage[10]=LoadBMP("saturnmaska.bmp")) &&
(TextureImage[11]=LoadBMP("saturn.bmp")) &&
(TextureImage[12]=LoadBMP("space.bmp")) &&
(TextureImage[13]=LoadBMP("sun.bmp")))
    {
        Status=TRUE;

        glGenTextures(14, &texture[0]);                                  
        for(loop=0;loop<14;loop++)
        {
            glBindTexture(GL_TEXTURE_2D, texture[loop]);
       
            gluBuild2DMipmaps(GL_TEXTURE_2D, 3,TextureImage[loop]->sizeX, TextureImage[loop]->sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[loop]->data);
            glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
            glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
        }
        for(loop=0;loop<14;loop++)
        {
            if (TextureImage[loop])                                                
            {
                if (TextureImage[loop]->data)                                    
                    free(TextureImage[loop]->data);                          
            free(TextureImage[loop]);                                          
            }
        }
    }
    return Status;
}

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();
}

int InitGL(GLvoid)
{
    if(!LoadTextures())
        return FALSE;
    Swiatlo();
    Build_font();

glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
glClearDepth(1.0f);
glEnable(GL_DEPTH_TEST);
    glShadeModel(GL_SMOOTH);
    glEnable(GL_TEXTURE_2D);
  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);

    Obiekt1=gluNewQuadric();
    gluQuadricTexture(Obiekt1, GLU_TRUE);
    gluQuadricDrawStyle(Obiekt1, GLU_FILL);  

return TRUE;
}

GLint DrawGLScene(GLvoid)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    gluLookAt(0,0,10, 0,0,0, 0,1,0);



glDisable(GL_LIGHTING);
    glTranslatef(0,0,-1);
    glRotatef(20,-1,0,0);
    glRotatef(rotate,0,0,1);
    glRotatef(rotate, 0,1,0);

    glBindTexture(GL_TEXTURE_2D, texture[0]);
    glBegin(GL_QUADS);
        glTexCoord2f(0.0f , roll + 0.0f);   glVertex3f(-10.1f, -10.1f, 0.0);
        glTexCoord2f(6.0f , roll + 0.0f);   glVertex3f(10.1f,   -10.1f, 0.0);
        glTexCoord2f(6.0f, roll + 6.0f);   glVertex3f(10.1f,   10.1f, 0.0);
        glTexCoord2f(0.0f, roll + 6.0f);   glVertex3f(-10.1f,   10.1f, 0.0);
    glEnd();

glEnable(GL_LIGHTING);



    glLoadIdentity();
    glBindTexture(GL_TEXTURE_2D, texture[5]);
    glTranslatef(-2.6f,-1.8f,-5);
    glRotatef(90,1,0,0);
    glRotatef(rotateobiekt2,0,0,1);
    gluSphere(Obiekt1, 0.9, 20,20);



    glLoadIdentity();
    glTranslatef(4.5,3.5,-10);
    glBindTexture(GL_TEXTURE_2D, texture[7]);
    glRotatef(rotateobiekt2,1,1,0);
    gluSphere(Obiekt1, 0.1,20,20);

    glLoadIdentity();
    glBlendFunc(GL_SRC_ALPHA, GL_ONE);
    glEnable(GL_BLEND);
    glBindTexture(GL_TEXTURE_2D, texture[1]);
    glTranslatef(0,0,-4);
    glTranslatef(0,-1.5,0);

    glDisable(GL_LIGHT1);
    glEnable(GL_LIGHT0);


    glBegin(GL_QUADS);
        glTexCoord2f(-roll2 +0.0f ,   0.0);   glVertex3f(-3.1f, -0.2f, 0.0);
        glTexCoord2f(-roll2 +1.0f ,   0.0);   glVertex3f(3.1f,   -0.2f, 0.0);
        glTexCoord2f(-roll2 +1.0f,   1.0);   glVertex3f(3.1f,   0.2f, 0.0);
        glTexCoord2f(-roll2 +0.0f,   1.0);   glVertex3f(-3.1f,   0.2f, 0.0);
    glEnd();

    glPrint(100,20,text_display[Tekst],1);

    glDisable(GL_LIGHT0);
    glEnable(GL_LIGHT1);

    glDisable(GL_BLEND);
    glBindTexture(GL_TEXTURE_2D, texture[2]);
    glTranslatef(0.0f,1.3f, -4.0f);
    glRotatef(rotateobiekt1,0,1,0);
    glRotatef(-75,1,0,0);
    gluSphere(Obiekt1,0.7,20,20);

    glTranslatef(1,0,0.5);
    glBindTexture(GL_TEXTURE_2D, texture[3]);
    glRotatef(rotateobiekt1,1,1,1);
    gluSphere(Obiekt1,0.1,20,20);

glLoadIdentity();
glDisable(GL_LIGHTING);
glTranslatef(0.60f, 0.35f,-2.8f);
glRotatef(20,0,0,1);

glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_DST_COLOR, GL_ZERO);
glBindTexture(GL_TEXTURE_2D, texture[10]);
glScalef(0.1f,0.1f,0.1f);
glBegin(GL_QUADS);
        glTexCoord2f(0.0 ,   0.0);   glVertex3f(-1.0, -1.0, 0.0);
        glTexCoord2f(1.0 ,   0.0);   glVertex3f(1.0,   -1.0, 0.0);
        glTexCoord2f(1.0,   1.0);   glVertex3f(1.0,   1.0, 0.0);
        glTexCoord2f(0.0,   1.0);   glVertex3f(-1.0,   1.0, 0.0);
    glEnd();

glBlendFunc(GL_ONE, GL_ONE);


glBindTexture(GL_TEXTURE_2D, texture[11]);
    glBegin(GL_QUADS);
        glTexCoord2f(0.0 ,   0.0);   glVertex3f(-1.0, -1.0, 0.0);
        glTexCoord2f(1.0 ,   0.0);   glVertex3f(1.0,   -1.0, 0.0);
        glTexCoord2f(1.0,   1.0);   glVertex3f(1.0,   1.0, 0.0);
        glTexCoord2f(0.0,   1.0);   glVertex3f(-1.0,   1.0, 0.0);
    glEnd();
glEnable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
glEnable(GL_LIGHTING);

glLoadIdentity();
glDisable(GL_LIGHTING);
glTranslatef(-0.7f,0.5f,-3.0f);
glRotatef(rotsat,0,0,1);

glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_DST_COLOR, GL_ZERO);
glBindTexture(GL_TEXTURE_2D, texture[8]);
glScalef(0.1f,0.1f,0.1f);
glBegin(GL_QUADS);
        glTexCoord2f(0.0 ,   0.0);   glVertex3f(-1.0, -1.0, 0.0);
        glTexCoord2f(1.0 ,   0.0);   glVertex3f(1.0,   -1.0, 0.0);
        glTexCoord2f(1.0,   1.0);   glVertex3f(1.0,   1.0, 0.0);
        glTexCoord2f(0.0,   1.0);   glVertex3f(-1.0,   1.0, 0.0);
    glEnd();

glBlendFunc(GL_ONE, GL_ONE);

glBindTexture(GL_TEXTURE_2D, texture[9]);
    glBegin(GL_QUADS);
        glTexCoord2f(0.0 ,   0.0);   glVertex3f(-1.0, -1.0, 0.0);
        glTexCoord2f(1.0 ,   0.0);   glVertex3f(1.0,   -1.0, 0.0);
        glTexCoord2f(1.0,   1.0);   glVertex3f(1.0,   1.0, 0.0);
        glTexCoord2f(0.0,   1.0);   glVertex3f(-1.0,   1.0, 0.0);
    glEnd();
glEnable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
glEnable(GL_LIGHTING);

glLoadIdentity();

glTranslatef(1.8f, 1.0f, -8);

glDisable(GL_LIGHTING);
glEnable(GL_BLEND);
glColor4f(1,1,1, alpha);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);

glRotatef(ro2,0,0,1);
glBindTexture(GL_TEXTURE_2D, texture[12]);
    glBegin(GL_QUADS);
        glTexCoord2f(0.0 ,   0.0);   glVertex3f(-1.0, -1.0, 0.0);
        glTexCoord2f(1.0 ,   0.0);   glVertex3f(1.0,   -1.0, 0.0);
        glTexCoord2f(1.0,   1.0);   glVertex3f(1.0,   1.0, 0.0);
        glTexCoord2f(0.0,   1.0);   glVertex3f(-1.0,   1.0, 0.0);
    glEnd();

glRotatef(ro,0,0,1);
glBegin(GL_QUADS);
        glTexCoord2f(0.0 ,   0.0);   glVertex3f(-1.0, -1.0, 0.0);
        glTexCoord2f(1.0 ,   0.0);   glVertex3f(1.0,   -1.0, 0.0);
        glTexCoord2f(1.0,   1.0);   glVertex3f(1.0,   1.0, 0.0);
        glTexCoord2f(0.0,   1.0);   glVertex3f(-1.0,   1.0, 0.0);
    glEnd();

glDisable(GL_BLEND);
glColor4f(1,1,1,1);


alpha+=alphaplus;

if(alpha>0.5)
alphaplus=-alphaplus;
if(alpha<0.0)
alphaplus=-alphaplus;

ro2+=0.1f;
ro+=0.05f;

glLoadIdentity();
glTranslatef(-0.7f, 0.7f, -1 );

glDisable(GL_LIGHTING);
glEnable(GL_BLEND);

glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glColor4f(0.9f, 0.1f, 0.9f, 1);

glBindTexture(GL_TEXTURE_2D, texture[13]);
    glBegin(GL_QUADS);
        glTexCoord2f(0.0 ,   0.0);   glVertex3f(-1.0, -1.0, 0.0);
        glTexCoord2f(1.0 ,   0.0);   glVertex3f(1.0,   -1.0, 0.0);
        glTexCoord2f(1.0,   1.0);   glVertex3f(1.0,   1.0, 0.0);
        glTexCoord2f(0.0,   1.0);   glVertex3f(-1.0,   1.0, 0.0);
    glEnd();
glColor4f(1,1,1,1);
glDisable(GL_BLEND);

glLoadIdentity();

glTranslatef(0.4f, -0.2f, -1);
glScalef(0.2f, 0.2f, 0.2f);

glDisable(GL_LIGHTING);
glEnable(GL_BLEND);

glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glColor4f(0.1f, 0.99f, 0.4f, 0.5f);

glBindTexture(GL_TEXTURE_2D, texture[13]);
   
glBegin(GL_QUADS);
        glTexCoord2f(0.0 ,   0.0);   glVertex3f(-1.0, -1.0, 0.0);
        glTexCoord2f(1.0 ,   0.0);   glVertex3f(1.0,   -1.0, 0.0);
        glTexCoord2f(1.0,   1.0);   glVertex3f(1.0,   1.0, 0.0);
        glTexCoord2f(0.0,   1.0);   glVertex3f(-1.0,   1.0, 0.0);
    glEnd();


glRotatef(roo,0,0,1);

glBindTexture(GL_TEXTURE_2D, texture[13]);
    glBegin(GL_QUADS);
        glTexCoord2f(0.0 ,   0.0);   glVertex3f(-1.0, -1.0, 0.0);
        glTexCoord2f(1.0 ,   0.0);   glVertex3f(1.0,   -1.0, 0.0);
        glTexCoord2f(1.0,   1.0);   glVertex3f(1.0,   1.0, 0.0);
        glTexCoord2f(0.0,   1.0);   glVertex3f(-1.0,   1.0, 0.0);
    glEnd();
glColor4f(1,1,1,1);
glDisable(GL_BLEND);


roo+=0.1f;
if(roo>360)
roo=0.0f;



rotsat+=0.1f;
if(rotsat>360)
rotsat=0;


RotateWenus+=0.2f;
    if(RotateWenus>360)
        RotateWenus=0;

    TextSync++;
if (TextSync > 600)
{
TextSync = 0;
Tekst++;
}
    if (Tekst   > 6)
    Tekst = 0;

    rotateobiekt1+=step2;
    rotateobiekt2+=0.05f;

    rotate+=step;
    if(rotate>12)
      step=-step;
    if(rotate<-12)
        step=-step;

    roll+=0.002f;
    if(roll>1.0f)
        roll-=1.0f;
   

    roll2+=0.0005f;

    if(roll2>1.0f)
        roll2-=1.0f;


    return TRUE;
}



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

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

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

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

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

if (!UnregisterClass("OpenGL",hInstance))
{
MessageBox(NULL,"Could Not Unregister Class.","Kapatma Hatası",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.","Hata",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 Şimdi Kapatılıyor.","Hata",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,"Pencere Oluşma Hatası.","Hata",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:
{
if (!HIWORD(wParam))
{
active=TRUE;
}
else
{
active=FALSE;
}

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,"Tam ekran Modunda Çalışsın mı?", "Tam Ekran Başlat?",MB_YESNO|MB_ICONQUESTION)==IDNO)
{
fullscreen=FALSE;
}

if (!CreateGLWindow("tansalic@walla.com",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("Kaidr@Kadir.com",640,480,16,fullscreen))

{
return 0;
}
}
}
}


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




Taglar: C Programlama ile Dongulere Ornek Vermek Donusturme C Programlama Ile 3d Ekran Koruyusu C Programlama Ile Guzel bir Hesap Makinasi KodBank Cplus programlamada Dizi fonksiyonlari Sayinin negatif yada pozitif oldugunu bulma Windows API ve C - 1 Windows API ve C - 2 Windows API ve C - 4 Windows API ve C - 5 Windows API ve C- 3

Isminiz:
E-mail adresiniz:
Güvenlik Kodu:
  
 

 

Istatistikler ,
Sitemizde su anda 31 kategori, 453 makale , 147 görsel ders ve 139 Ziyaretci bulunmaktadir...
Toplam üye sayimiz : 951

Web Stats Ferdi Tayfur | Memur Muzaffer | Bedava Mp3 indirin | Visual Basic | Rss| Fnex.Net| Forum Dünyasi
Pagerank

Copyright © 2007 Programlamadili.net - Programlama & Tasarim: Recep Ikiz & Ferdi Küçük

| Site Haritasi |

"Ne Aradığını Bilmeyen Bulduğunun Farkına Varamaz "
ACPI Programlama dili, Action Script Programlama dili, Ajax Programlama dili, ASP Programlama dili, ASP.NET Programlama dili, Assembly Programlama dili, Bash Programlama dili, C Programlama dili, C# Programlama dili, C++ Programlama dili, Cobol Programlama dili, Delphi Programlama dili, Flash Programlama dili, Html Programlama dili, JAVA Programlama dili, Java Script Programlama dili, JSF Programlama dili, Jsp Programlama dili, Lua Programlama dili, Matlab Programlama dili, MySQL Programlama dili, Oracle Programlama dili, Pascal Programlama dili, Perl Programlama dili, Photoshop Programlama dili, PHP Programlama dili, Python Programlama dili, REXX Programlama dili, Ruby Programlama dili, SEO Programlama dili, Visual Basic Programlama dili,
Reklam alanı