일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 아두이노 핀
- wifi멀티탭
- database
- HTML
- Codility
- 웹 프로그래밍
- Arduino pin map
- mysql c
- ubuntu
- Virtual Box
- 아두이노 wifi
- 아두이노 핀 맵
- 아두이노
- vm
- Mysql c API
- mysql api
- 아두이노 와이파이
- html input
- 아두이노 핀맵
- 코딜리티
- Arduino pin
- 아두이노 프로미니
- 데이터베이스
- 아두이노 pro mini
- 라즈베리파이
- Arduino
- 알고리즘
- Raspberry Pi
- web
- MySQL
- Today
- Total
offfff
SDL 용어 정리 본문
SDL_Window
창 자체의 모든 정보를 저장하는 구조체
사이즈, 위치, 풀 스크린, 경계 등...
SDL_Renderer
모든 렌더링을 다루는 구조체
SDL_Window에 묶여서 하나의 창 안에서만 사용가능하다.
렌더링에 관련된 설정들을 갖는다.
아래 함수가 SDL_Renderer에 필수적으로 사용된다.
- SDL_SetRenderDrawColor(renderer, r,g,b, a);
화면을 지울 때 쓸 색을 렌더러에 설정
- SDL_RenderClear(renderer);
렌더러에 설정된 색으로 렌더링 타겟을 클리어(지움) 함
- SDL_RenderCopy(
Blit의 한 방법. 가장 많이 사용된다. 아래 인자들을 가지고 SDL_Texture를 렌더링한다.
SDL_Renderer* renderer,
렌더링에 사용하길 원하는 렌더러
SDL_Texture* texture,
렌더링하려는 텍스쳐
const SDL_Rect* src_rect,
렌더링 할 텍스쳐의 일부를 설정, 전체를 다 사용할 시 NULL
const SDL_Rect* dst_rect)
창 안에서 렌더링 할 위치를 설정
만약 dst_rect의 폭, 높이가 텍스쳐 공간보다 크거나 작으면,
텍스쳐가 dst_rect의 크기에 맞춰 늘어나거나 줄어든다.
- SDL_RenderPresent(renderer);
다른 SDL_Render* 함수들은 숨겨진 타겟을 그린다.
이 함수는 렌더러에 있는 모든 것을 가져와, 렌더러가 묶인 창 안에 그려준다.
SDL_Textures와 SDL_Surface
SDL_Renderer는 SDL_Texture를 렌더링 한다.
여기서 SDL_Texture는 한 요소의 픽셀정보이다.
SDL_Surface의 새로운 버전과 마찬가지이다.
주요한 차이점은 SDL_Surface는 단지 픽셀 정보를 담고있는 구조체인 반면,
SDL_Texture는 드라이버 입장에서 효율적인 픽셀 데이터로 표현 되어있다.
(SDL_Texture – H/W rendering vs SDL_Surface – S/W rendering)
아래 함수를 사용해서 SDL_Surface*를 SDL_Texture로 변환가능하다.
SDL_Texture* SDL_CreateTextureFromSurface(SDL_Renderer* renderer, SDL_Surface* surface)
위 함수를 쓰고 나서, SDL_Surface를 아래 함수로 해제(free)해 주어야 한다.
SDL_FreeSurface(SDL_Surface* surface)
이미지나 폰트는 SDL_Image, SDL_ttf로
SDL_Rect
SDL에서 가장 단순한 구조체
short 변수 4개만 가짐(위치정보 x, y, 폭, 높이 정보 w, h)
SDL에서 0,0은 좌상단 모서리로 정의 되어있다.
따라서 y값이 높을수록 아래쪽을 가리키고
우측 하단 모서리 좌표는 (x+w, y+h)가 된다.
참고
https://stackoverflow.com/questions/21007329/what-is-a-sdl-renderer/21007477#21007477
'프로그래밍' 카테고리의 다른 글
[WiFi 멀티탭 제작기 (2)] 멀티탭 분해 (0) | 2018.01.17 |
---|---|
[WiFi 멀티탭 제작기 (1)] 시작하는 글 (0) | 2018.01.17 |
아두이노 나노 핀 맵 (0) | 2017.09.13 |
아두이노 메가 핀 맵 (0) | 2017.09.13 |
아두이노 프로미니 핀 맵 (0) | 2017.09.13 |