PlanetSwitch Planet3DS PlanetVita PSP.de PlanetiPhone Classics Forum Handheld-Wiki

PGN-ID:[?] (Nicht eingeloggt)
Login
Registrieren
PlanetDS PlanetGameboy N-Page.de
portablegaming.de  

Zurück   portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung


Development Abteilung Ihr wollt für euren Lieblingshandheld Spiele oder Tools entwickeln?
Bitte die Präfixe benutzen!

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 27.05.2005, 22:43   #1
Moderator
 
Benutzerbild von tommiboy
 
Registriert seit: 26.08.2003
Alter: 30
Spielt gerade: Pokémon Go (Trainercode: 1244 2518 3296)

tommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengott
tommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengott

Frage OpenGL per C++ || Auf geht's

Da das VGA Coding im DOS C++ eher ernüchternde Ergebnisse liefert... hab ich mich entschlossen mal was bessers zu versuchen, respektive DirectX bzw. OpenGL
Und da man bei Dev C++ wenn man ein neues Projekt startet, unter Mulitmedia gleich "Open GL Project" auswählen kann... versuch ich's halt...

Spontan krieg ich nen netten Code, mit färbigem, rotierenden Dreieick im Windoof Fenster usw.

hier mal der code, meine bescheidenen erkenntnisse hab ich dazugeschrieben;

Code:
/**************************
 * Includes
 *
 **************************/

#include <windows.h>
#include <gl/gl.h>


/**************************
 * Function Declarations
 *
 **************************/

LRESULT CALLBACK WndProc (HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam);
void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC);
void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC);


/**************************
 * WinMain
 *
 **************************/

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow)

{
    WNDCLASS wc;
    HWND hWnd;
    HDC hDC;
    HGLRC hRC;        
    MSG msg;
    BOOL bQuit = FALSE;
    float theta = 0.0f;

    /* register window class */
    wc.style = CS_OWNDC;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor (NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH);
    wc.lpszMenuName = NULL;
    wc.lpszClassName = "GLSample";
    RegisterClass (&wc);

    /* create main window */
    hWnd = CreateWindow ("GLSample", "OpenGL Experiment", //Überschrift im Fenster
                         WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE,
                         0, 0, 800, 800, //Größe des Fensters xmin, ymin, xmax, ymax
                         NULL, NULL, hInstance, NULL);

    /* enable OpenGL for the window */
    EnableOpenGL (hWnd, &hDC, &hRC);

    /* program main loop */
    while (!bQuit)
    {
        /* check for messages */
        if (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
        {
            /* handle or dispatch messages */
            if (msg.message == WM_QUIT)
            {
                bQuit = TRUE;
            }
            else
            {
                TranslateMessage (&msg);
                DispatchMessage (&msg);
            }
        }
        else
        {
            /* OpenGL animation code goes here */

            glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
            glClear (GL_COLOR_BUFFER_BIT);

            glPushMatrix ();
            glRotatef (theta, 0.0f, 0.0f, 1.0f);
            glBegin (GL_TRIANGLES);
            glColor3f (1.0f, 0.0f, 0.0f);   glVertex2f (0.0f, 1.0f);
            glColor3f (0.0f, 1.0f, 0.0f);   glVertex2f (0.87f, -0.5f);
            glColor3f (0.0f, 0.0f, 1.0f);   glVertex2f (-0.87f, -0.5f);
            glEnd ();
            glPopMatrix ();

            SwapBuffers (hDC);

            theta += 1.0f;
            Sleep (1); //Zeit zwischen den Frames
        }
    }

    /* shutdown OpenGL */
    DisableOpenGL (hWnd, hDC, hRC);

    /* destroy the window explicitly */
    DestroyWindow (hWnd);

    return msg.wParam;
}


/********************
 * Window Procedure
 *
 ********************/

LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{
    switch (message)
    {
    case WM_CREATE:
        return 0;
    case WM_CLOSE:
        PostQuitMessage (0);
        return 0;

    case WM_DESTROY:
        return 0;

    case WM_KEYDOWN:
        switch (wParam)
        {
        case VK_ESCAPE:
            PostQuitMessage(0);
            return 0;
        }
        return 0;

    default:
        return DefWindowProc (hWnd, message, wParam, lParam);
    }
}


/*******************
 * Enable OpenGL
 *
 *******************/

void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC)
{
    PIXELFORMATDESCRIPTOR pfd;
    int iFormat;

    /* get the device context (DC) */
    *hDC = GetDC (hWnd);

    /* set the pixel format for the DC */
    ZeroMemory (&pfd, sizeof (pfd));
    pfd.nSize = sizeof (pfd);
    pfd.nVersion = 1;
    pfd.dwFlags = PFD_DRAW_TO_WINDOW | 
      PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
    pfd.iPixelType = PFD_TYPE_RGBA;
    pfd.cColorBits = 24;
    pfd.cDepthBits = 16;
    pfd.iLayerType = PFD_MAIN_PLANE;
    iFormat = ChoosePixelFormat (*hDC, &pfd);
    SetPixelFormat (*hDC, iFormat, &pfd);

    /* create and enable the render context (RC) */
    *hRC = wglCreateContext( *hDC );
    wglMakeCurrent( *hDC, *hRC );

}


/******************
 * Disable OpenGL
 *
 ******************/

void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC)
{
    wglMakeCurrent (NULL, NULL);
    wglDeleteContext (hRC);
    ReleaseDC (hWnd, hDC);
}
So... jetzt wäre es interessant den Animations-Code zu checken, da das Dreieck ja offensichtlich vollständig berechnet ist... und Vollbild wär auch schön... Auflösung kann ich ja ändern, aber FullScreen...

plz help
__________________
Fernsehen macht blöd...
... aber unglaublich viel Spaß!
Walulis sieht fern
tommiboy ist offline   Mit Zitat antworten
Sponsored Links
Alt 28.05.2005, 10:54   #2
 
Benutzerbild von Thrall
 
Registriert seit: 07.10.2003
Spielt gerade: Defcon,Oblivion

Thrall wird schon bald berühmt werden

Standard

Hmm irgendwie wird das bei mir nichtmal kompiliert
Thrall ist offline   Mit Zitat antworten
Alt 28.05.2005, 11:31   #3
 
Registriert seit: 30.03.2005
Alter: 28

Shugo wird schon bald berühmt werden

Shugo eine Nachricht über ICQ schicken
Standard

Bei mir gehts ich schau mal was ich machen kann. Du kansst die grösse auf deine auflösung einstellen, aber wie man allg. fullscreen macht weiss ich nicht.
Shugo ist offline   Mit Zitat antworten
Alt 28.05.2005, 11:40   #4
Gesperrt
 
Registriert seit: 19.10.2004

MasterK wird schon bald berühmt werden

Standard

wenn du openGL benutzen willst kannst du auch die SDL zum initialisieren nehmen. ist erstens einfacher und zum anderen auch plattformunabhängiger code da nix mit winmain oder so.

tutorials gibts zB hier: http://www.resourcecode.de/index.php?section=12
MasterK ist offline   Mit Zitat antworten
Alt 28.05.2005, 14:03   #5
 
Registriert seit: 26.07.2003
Alter: 36

SpOOnY hat die Renommee-Anzeige deaktiviert

SpOOnY eine Nachricht über ICQ schicken
Standard

falls du die seite noch nicht kennst solltest du mal einen blick drauf werfen, ist wohl einen der bekanntesten OpenGL tut seiten: http://nehe.gamedev.net/
Ich glaub die meisten Tuts gibts auch in anderen Sprachen musst halt googeln.

In der "Lessons 1" beim Windows code siehst auch wie man das ganze fullscreen macht ...
SpOOnY ist offline   Mit Zitat antworten
Alt 28.05.2005, 15:20   #6
Moderator
 
Benutzerbild von tommiboy
 
Registriert seit: 26.08.2003
Alter: 30
Spielt gerade: Pokémon Go (Trainercode: 1244 2518 3296)

tommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengott
tommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengotttommiboy ist ein Forengott

Standard

Erstmal THX @ All

werd mich durch die Tuts arbeiten

@ masterk

http://www.libsdl.org/download-1.2.php

hier unter development libraries die für vc6... oder wie?!
aber das ist ja ne M$ Visual C sache... funzt das unter Dev C++ überhaupt?!!

oje...

/* A structure to hold a set of audio conversion filters and buffers */
typedef struct SDL_AudioCVT {
int needed; /* Set to 1 if conversion possible */
Uint16 src_format; /* Source audio format */
Uint16 dst_format; /* Target audio format */
double rate_incr; /* Rate conversion increment */
Uint8 *buf; /* Buffer to hold entire audio data */
int len; /* Length of original audio buffer */
int len_cvt; /* Length of converted audio buffer */
int len_mult; /* buffer must be len*len_mult big */
double len_ratio; /* Given len, final size is len*len_ratio */
void (SDLCALL *filters[10])(struct SDL_AudioCVT *cvt, Uint16 format); ...\SDL_audio.h syntax error before `[' token
int filter_index; /* Current audio conversion function */
} SDL_AudioCVT;
__________________
Fernsehen macht blöd...
... aber unglaublich viel Spaß!
Walulis sieht fern
tommiboy ist offline   Mit Zitat antworten
Antwort

  portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PSP Spiele auf Memory Stick statt auf UMD ? Morian1 Hardware (PSP) 30 18.07.2008 19:35
GBA Spiele auf dem DS schlechter als auf micro ? supamisiu Hardware (Nintendo DS) 6 17.01.2006 20:39
Mit der PSP ins Internet!!!!! Wie geht's????? blazor Sonstiges (PSP) 25 14.03.2005 20:19
Geht's uns wirklich so schlecht? Trunx Sonstiges 29 24.12.2004 00:21
nVidia-Grafikchip mit Direct 3D & OpenGL atex Sonstiges (N-Gage) 2 25.09.2004 14:47


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:27 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0
Template-Modifikationen durch TMS
PortableGaming.de © bk 2000 - 2010

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231