On Thursday, 24 December 2015 at 09:41:39 UTC, Jack wrote:
So I have separated my texture rendering methods in another
file and have run into a problem hence the title name.
#main.d
----------
void render()
{
SDL_RenderClear(renderTarget);
renderSprite(renderTarget);
SDL_RenderPresent(renderTarget);
}
----------
#other_file.d
-----------
void renderSprite(SDL_Renderer _renderTarget)
{
SDL_Texture texture =
SDL_CreateTextureFromSurface(_renderTarget,
IMG_Load("image.png"));
SDL_RenderCopy(_renderTarget,texture, null,null);
}
----------
Error: cannot implicitly convert expression (null) of type
typeof(null) to SDL_Rect
Error: cannot implicitly convert expression (null) of type
typeof(null) to SDL_Rect
=====================
But when I do this:
#main.d
-------------------
void render()
{
SDL_RenderClear(renderTarget);
SDL_RenderCopy(renderTarget,texture,null,null);
SDL_RenderPresent(renderTarget);
}
--------------------
It works with no problem. I've DerelictSDL2.load and SDL_Init
already.
So is this a bug or am I doing something wrong here?
You need a pointer to renderTarget.
#other_file.d
---------------------
module my.sdl.project;
import derelict.sdl2.sdl;
import derelict.sdl2.image;
void renderSprite(SDL_Renderer* _renderTarget)
{
SDL_Texture* texture =
SDL_CreateTextureFromSurface(_renderTarget,
IMG_Load("image.png"));
SDL_RenderCopy(_renderTarget,texture, null,null);
}
---------------
#main.d
-----------
import my.sdl.project;
//...
-----------