スポンサーリンク
諸事情によりSDLライブラリ。
URL https://www.libsdl.org/download-2.0.php
ダウンロード SDL2-devel-2.0.18-VC.zip (Visual C++ 32/64-bit)
パス設定
include : SDL2-2.0.18\include
lib : SDL2-2.0.18\lib\x64
ウィンドウに画像を表示するサンプルばかりだったので、画像を作成してファイルに保存するサンプルにした。
SDL_CreateRGBSurface と SDL_CreateSoftwareRenderer を使う。
// このマクロを定義しないとエントリポイントが SDL_main になる #define SDL_MAIN_HANDLED #include <SDL.h> #pragma comment(lib,"SDL2.lib") // 必要ファイル: // SDL2.dll int main(int argc, char* argv[]) { ////////////////////////////// Uint32 rmask, gmask, bmask, amask; #if SDL_BYTEORDER == SDL_BIG_ENDIAN rmask = 0xff000000; gmask = 0x00ff0000; bmask = 0x0000ff00; amask = 0x000000ff; #else rmask = 0x000000ff; gmask = 0x0000ff00; bmask = 0x00ff0000; amask = 0xff000000; #endif ////////////////////////////// SDL_Surface* surf = SDL_CreateRGBSurface( 0, 256, 256, 32, rmask, gmask, bmask, amask); //■ レンダラ作成 SDL_Renderer* render = SDL_CreateSoftwareRenderer(surf); // アルファブレンドの設定 SDL_SetRenderDrawBlendMode(render, SDL_BLENDMODE_BLEND); ////////////////////////////// // 黒でクリア SDL_SetRenderDrawColor(render, 0, 0, 0, 255); SDL_RenderClear(render); ////////////////////////////// // 赤で直線 SDL_SetRenderDrawColor(render, 255, 0, 0, 150); SDL_RenderDrawLine(render, 50, 20, 500, 200); ////////////////////////////// // ファイルに保存 SDL_SaveBMP(surf, "out.bmp"); ////////////////////////////// //■ レンダラ破棄 SDL_DestroyRenderer(render); SDL_FreeSurface(surf); return 0; }