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
| #include "functions.h"
void intro() {
p_renderer=SDL_CreateRenderer(p_window, -1, SDL_RENDERER_ACCELERATED);
if(p_renderer==NULL) {
SDL_FreeSurface(p_logo);
SDL_RWclose(p_rw);
SDL_DestroyWindow(p_window);
SDL_Quit();
printf("SDL_CreateRenderer error : %s\n", SDL_GetError());
exit(5);
}
p_texture_logo=SDL_CreateTextureFromSurface(p_renderer, p_logo);
if(p_texture_logo==NULL) {
SDL_FreeSurface(p_logo);
SDL_DestroyRenderer(p_renderer);
SDL_RWclose(p_rw);
SDL_DestroyWindow(p_window);
SDL_Quit();
printf("SDL_CreateTextureFromSurface error : %s\n", SDL_GetError());
exit(9);
}
SDL_FreeSurface(p_logo);
//
Uint32 format;
int access = 0;
int w_logo = 0;
int h_logo = 0;
if(SDL_QueryTexture(p_texture_logo,&format, &access, &w_logo, &h_logo)<0) {
SDL_DestroyTexture(p_texture_logo);
SDL_DestroyRenderer(p_renderer);
SDL_RWclose(p_rw);
SDL_DestroyWindow(p_window);
SDL_Quit();
printf("SDL_QueryTexture error : %s\n", SDL_GetError());
exit(7);
}
//
SDL_Rect dest = { 800/2 - w_logo/2,600/2 - h_logo/2, w_logo, h_logo};
if(SDL_RenderCopy(p_renderer, p_texture_logo, NULL, &dest)<0) {
SDL_DestroyTexture(p_texture_logo);
SDL_DestroyRenderer(p_renderer);
SDL_RWclose(p_rw);
SDL_DestroyWindow(p_window);
SDL_Quit();
printf("SDL_RenderCopy error : %s\n", SDL_GetError());
exit(8);
}
//
SDL_RenderPresent(p_renderer);
}
void init() {
p_rw=SDL_RWFromMem(get_address(), get_size());
if(p_rw==NULL) {
printf("SDL_RWFromMem error : %s\n", SDL_GetError());
exit(3);
}
if(SDL_Init(SDL_INIT_VIDEO)!=0) {
printf("SDL_Init Error : %s\n", SDL_GetError());
exit(1);
}
int flags=IMG_INIT_PNG;
int initted=IMG_Init(flags);
if((initted&flags)!=flags) {
SDL_Quit();
printf("IMG_Init error : %s\n", IMG_GetError());
exit(6);
}
p_window=SDL_CreateWindow("HMD", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 800, 600, SDL_WINDOW_FULLSCREEN);
if(p_window==NULL) {
SDL_Quit();
printf("SDL_CreateWindow error : %s\n", SDL_GetError());
exit(2);
}
p_logo=IMG_LoadPNG_RW(p_rw);
if(p_logo==NULL) {
SDL_Quit();
printf("IMG_LOADPNG_RW error : %s\n", IMG_GetError());
exit(4);
}
/*p_logo=IMG_Load("gfx/hemoroids.png");
if(p_logo==NULL) {
SDL_Quit();
printf("IMG_Load error : %s\n", IMG_GetError());
exit(4);
}*/
}
void quit() {
SDL_DestroyTexture(p_texture_logo);
SDL_DestroyRenderer(p_renderer);
SDL_RWclose(p_rw);
SDL_DestroyWindow(p_window);
SDL_Quit();
} |
Partager