SDL操作筆記
阿新 • • 發佈:2018-07-02
pan 渲染器 填充 pix itl utf ces real csdn
4.加載文字:
7.設置surface和texture的透明度:
8.畫畫:
9.在texture上畫畫:
原文地址:https://blog.csdn.net/qq_38124598/article/details/73543184
這裏總結一下個人對SDL的一些函數,方便以後查詢。
v1.0.11.窗口:
SDL_Init(SDL_INIT_VIDEO); //創建窗口 SDL_Window*window=SDL_CreateWindow(char*title,int x, int y, int width, int height,0); //獲取窗口大小 int win_w,win_h;SDL_GetWindowSize(window,&win_w,&win_h);//銷毀窗口 SDL_DestroyWindow(window); SDL_Quit();
2.渲染器:
//創建 SDL_Renderer*renderer=SDL_CreateRenderer(window,-1,0); //設置透明度 SDL_SetRenderDrawBlendMode(renderer,SDL_BLENDMODE_BLEND); //清理 SDL_RenderClear(renderer); //刷新 SDL_RenderPresent(renderer); //銷毀 SDL_DestroyRenderer(renderer);
3.加載圖片:
#include <SDL2/SDL_image.h> SDL_Surface*surface=IMG_Load(char*file);
4.加載文字:
#include <SDL2/SDL_ttf.h> TTF_Init(); TTF_Font*font=TTF_OpenFont(char*file, int size); SDL_Surface*surface=TTF_RenderUTF8_Blended_Wrapped(TTF_Font*font, chae*str, SDL_Color color, intwidth); //文字風格:斜體。另外 TTF_STYLE_BOLD:粗體,TTF_STYLE_UNDERLINE:下劃線,TTF_STYLE_STRIKETHROUGH:刪除線,TTF_STRLE_NORMAL:正常 TTF_SetFontStyle(TTF_Font*font, TTF_STYLE_ITALIC); //退出 TTF_CloseFont(font);TTF_Quit();
5.texture:
//surface轉換成texture SDL_Texture*texture=SDL_CreateTextureFromSuface(SDL_Renderer*renderer, SDL_Surface*surface); //獲取texture的長寬的with,height; SDL_QueryTexture(SDL_Texture*texture, NULL, NULL, &with, &height);6.surface:
//銷毀 SDL_FreeSurface(SDL_Surface*surface);
7.設置surface和texture的透明度:
SDL_SetSurfaceBlendMode(SDL_Surface*surface, SDL_BLENDMODE_BLEND); SDL_SetSurfaceAlphaMod(SDL_Surface*surface, Uint8 alpha); SDL_SetTextureBlendMode(SDL_Texture*texture, SDL_BLENDMODE_BLEND); SDL_SetTextureAlphaMod(SDL_Texture*texture, Uint8 alpha);
8.畫畫:
SDL_SetRenderDrawColor(SDL_Renderer*renderer, Uint8 r,Uint8 g, Uint8 b, Uint8 a); //設置畫筆顏色 SDL_FillRect(SDL_Renderer*renderer, SDL_Rect*rect); //填充矩形
9.在texture上畫畫:
SDL_Texture*texture=SDL_CreateTexture(SDL_Renderer*renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, int width, int height); SDL_SetRenderDrawColor(SDL_Renderer*renderer, 255, 255, 255, 0); SDL_SetRenderTarget(SDL_Renderer*renderer, SDL_Texture*texture); SDL_RenderClear(SDL_Renderer*renderer); ...//畫畫 SDL_SetRenderTarget(SDL_Renderer*renderer, NULL);
SDL操作筆記