Hallo,
Ich versuche nun schon eine Weile mithilfe von SDL einfache Geometrische Objekte zu rendern.
Solange der komplette Code in einer Main.cpp ist läuft alles ohne Probleme, doch sobald ich mir eine eigene Initialisierungsfunktion schreibe um den Renderer und das Window zu Initialisieren funktioniert es nicht mehr.
Hier mein Quelltext:
Main.cpp
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include "Init.h"
int main(int argc, char *argv[])
{
SDL_Window *window = NULL;
SDL_Renderer *renderer = NULL;
if (b_Init(window, renderer) == false)
{
std::cout << "Initialisation Error" << std::endl;
}
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
SDL_Delay(5000);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
|
Init.h
|
C-/C++-Quelltext
|
1
2
3
4
5
|
#include <SDL.h>
#include <iostream>
//Initializes SDL
bool b_Init(SDL_Window*, SDL_Rendere
|
Init.cpp
|
C-/C++-Quelltext
|
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
|
#include "Init.h"
bool b_Init(SDL_Window *window, SDL_Renderer *renderer)
{
bool success = true;
if (SDL_Init(SDL_INIT_VIDEO) < 0)
{
std::cout << "Video Initialisation Error: " << SDL_GetError() << std::endl;
success = false;
}
else
{
window = SDL_CreateWindow("SDL_Project", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720, SDL_WINDOW_SHOWN);
if (window == NULL)
{
std::cout << "Window Creation Error: " << SDL_GetError() << std::endl;
success = false;
}
else
{
renderer = SDL_CreateRenderer(window, 0, SDL_RENDERER_ACCELERATED);
}
}
return success;
}
|
Da das Initialiseren an sich ohne Fehler abläuft verstehe ich nicht wieso es dem Renderer nicht möglich ist die Grafik anzuzeigen.
Gruß Paul