On Mon, 08 Dec 2014 12:53:10 +0000 Paul via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
> 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); > > > } this exact code is working for me. i just copypasted it and gave it test.bmp to work with.
signature.asc
Description: PGP signature