#pragma once

#include <SDL.h>
#include <SDL_Image.h>

#include <vector>
#include <string>

#include <C2/util/stream_util.h>



namespace lib_graph
{


//! SDL_imageを使って画像ファイルを読み込む. 日本語名ファイル対応版.
SDL_Surface* LoadSDLSurface(const char* filename)
{
	std::vector<char> buf;
	if( !util::LoadBufferFromFile(buf, filename) )
		return NULL;

	if( buf.empty() )
		return NULL;

	SDL_RWops* src = SDL_RWFromMem(&buf[0], (int)buf.size());
	if(!src)
		return NULL;

	// const char* -> char* への変換.
	std::string fname_copy = filename;

	char *ext = strrchr(&fname_copy[0], '.');
	if(ext)
		ext++;

	return IMG_LoadTyped_RW(src, 1, ext);
}


}
