Derelict / SDL error
Paul via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Dec 8 04:53:10 PST 2014
Sorry this is a bit off topic but as there doesn't seem to be an
active forum for Derelict atm....
This simple test code is giving me an error 'Error executing
command run: Program exited with code -11' (or a seg fault if
executed from a terminal). The problem line is:
SDL_RenderCopy(renderer, texture, &sourceRect, &destRect);
I've tried this call with the 'null' options as well as passing
the address of the rects but neither works (I've also tried
manually assigning the various struct components rather than
using the c style initialisation in case that was the problem).
Any ideas please?
import derelict.sdl2.sdl;
import std.stdio;
void main()
{
scope(exit) SDL_Quit();
DerelictSDL2.load();
writeln( "SDL loaded ok");
//init sdl
if (SDL_Init(SDL_INIT_EVERYTHING) != 0){
writeln("SDL_Init Error: ", SDL_GetError() );
return;
}
//open a window
SDL_Window *window = SDL_CreateWindow("Window Title!", 100, 100,
640, 480, SDL_WINDOW_SHOWN);
if (window == null){
writeln("SDL_CreateWindow Error: ", SDL_GetError() );
return;
}
//get a renderer (ie buffer), use software renderer for now
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1,
SDL_RENDERER_SOFTWARE);
if (renderer == null){
writeln( "SDL_CreateRenderer Error: " , SDL_GetError() );
return;
}
//load a bitmap
SDL_Surface *image = SDL_LoadBMP("./test.bmp");
if (image == null){
writeln( "SDL_LoadBMP error: " , SDL_GetError() );
return;
}
//create texture for bitmap
SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer,
image);
if (texture == null){
writeln( "CreateTextureFromSurface error: " , SDL_GetError() );
return;
}
//copy to renderer at correct position & scale
SDL_Rect sourceRect = { 0, 0, 64, 64 };
SDL_Rect destRect = { 100, 100, 64, 64 };
SDL_RenderCopy(renderer, texture, &sourceRect, &destRect);
//display and pause
SDL_RenderPresent(renderer);
SDL_Delay(2000);
}
More information about the Digitalmars-d-learn
mailing list