SDL2의 간단한 소개와 개념에 대해서는 이전에 다른 글을 통해 다룬적이 있었다.
SDL_INIT_TIMER |
타이머 서브시스템 |
SDL_INIT_AUDIO |
오디오 서브시스템 |
SDL_INIT_VIDEO |
비디오 서브시스템 |
SDL_INIT_JOYSTICK |
조이스틱 서브시스템 |
SDL_INIT_HAPTIC |
햅틱 (force feedback) 서브시스템 |
SDL_INIT_GAMECONTROLLER |
게임 컨트롤러 서브시스템 |
SDL_INIT_EVENTS |
이벤트 서브시스템 |
SDL_INIT_EVERYTHING |
위의 모든 서브시스템 |
SDL_INIT_NOPARACHUTE |
치명적인 신호를 무시 |
SDL_WINDOW_FULLSCREEN |
전체화면 창 |
SDL_WINDOW_FULLSCREEN_DESKTOP |
데스크탑 해상도의 전체 화면 창 |
SDL_WINDOW_OPENGL |
OpenGL 컨텍스트로 사용가능한 창 |
SDL_WINDOW_VULKAN |
Vulkan 과 함께 사용 가능한 창 |
SDL_WINDOW_HIDDEN |
보이지 않는 창 |
SDL_WINDOW_BORDERLESS |
데코레이션이 없는 창 |
SDL_WINDOW_RESIZABLE |
크기를 조정 가능 |
SDL_WINDOW_MINIMIZED |
최소화 창 |
SDL_WINDOW_MAXIMIZED |
최대화 창 |
SDL_WINDOW_INPUT_GRABBED |
입력 포커스를 얻음 |
SDL_WINDOW_ALLOW_HIGHDPI |
지원되는 경우 높은 DPI 모드에서 창 (>= SDL 2.0.1) |
SDL_RENDERER_SOFTWARE |
소프트웨어 대체 |
SDL_RENDERER_ACCELERATED |
하드웨어 가속을 사용 |
SDL_RENDERER_PRESENTVSYNC |
새로고침 수직동기화 |
SDL_RENDERER_TARGETTEXTURE |
텍스처 렌더링을 지원 |
#include <iostream>
#include <SDL2/SDL.h>
using namespace std;
#define UNUSED(x) (void)(x)
int sdl_window_example()
{
SDL_Window *window; // Declare a pointer
SDL_Init(SDL_INIT_VIDEO); // Initialize SDL2
// Create an application window with the following settings:
window = SDL_CreateWindow(
"An SDL2 window", // window title
SDL_WINDOWPOS_UNDEFINED, // initial x position
SDL_WINDOWPOS_UNDEFINED, // initial y position
640, // width, in pixels
480, // height, in pixels
SDL_WINDOW_OPENGL // flags - see below
);
// Check that the window was successfully created
if (window == nullptr) {
// In the case that the window could not be made...
printf("Could not create window: %s\n", SDL_GetError());
return 1;
}
auto renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if(renderer == nullptr)
goto destroy_window;
SDL_SetRenderDrawColor(renderer, 0, 255, 0, 255);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
// The window is open: could enter program loop here (see SDL_PollEvent())
SDL_Delay(3000); // Pause execution for 3000 milliseconds, for example
// Close and destroy the renderer
SDL_DestroyRenderer(renderer);
destroy_window:
// Close and destroy the window
SDL_DestroyWindow(window);
// Clean up
SDL_Quit();
return 0;
}
int main(int argc, char *argv[])
{
UNUSED(argc);
UNUSED(argv);
cout << "Hello World!" << endl;
return sdl_window_example();
}
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
16 |
라즈베리파이4에서 openFrameworks 예제 실행
![]() | makersweb | 2020.12.13 | 1545 |
15 |
Dear ImGui, 경량의 C++ 용 GUI 및 Widget 라이브러리
![]() | makersweb | 2020.11.28 | 10655 |
14 |
GENIVI DLT(Diagnostic Log and Trace) 활용
![]() | makersweb | 2020.11.19 | 11540 |
13 |
윈도우에서 안드로이드 flutter 프로그래밍 개발환경 구축(with Visual Studio Code)
![]() | makersweb | 2020.09.16 | 1877 |
12 |
가볍고 쉬운 임베디드용 그래픽 라이브러리 - LVGL
![]() | makersweb | 2020.09.16 | 4693 |
11 |
Qt와 GStreamer 로 작성한 flac 오디오 재생 예제
![]() | makersweb | 2020.09.05 | 1960 |
10 |
ZeroMQ 비동기 클라이언트/서버 패턴
![]() | makersweb | 2020.08.13 | 2963 |
9 |
ZeroMQ의 기본 메세지 패턴들
![]() | makersweb | 2020.07.31 | 9913 |
» |
[SDL2 와 OpenGL]윈도우 생성과 2D그래픽
![]() | makersweb | 2020.04.11 | 4082 |
7 |
Pluma(C++ Plug-in Management Framework) 튜토리얼
![]() | makersweb | 2019.12.07 | 14844 |
6 | 도커(docker)설치 및 기본 명령어 | makersweb | 2019.12.02 | 1318 |
5 |
webOS소개 및 Raspberry Pi 3 에서 실행
![]() | makersweb | 2019.10.13 | 4799 |
4 |
리눅스에서 SDL2 최신버전 컴파일과 Qt Creator로 개발환경 구성
![]() | makersweb | 2019.10.06 | 4082 |
3 |
텔레그램(Telegram) Bot 개발
![]() | makersweb | 2019.07.21 | 6749 |
2 |
GDBus 튜토리얼(GDBus tutorial)
![]() | makersweb | 2019.06.30 | 12250 |
1 |
Wayland IVI Extension 간단 리뷰
![]() | makersweb | 2019.05.12 | 3148 |