본문 바로가기

전체 글109

SDL2 오디오 재생 기초: want/have 협상 구조와 SDL_QueueAudio로 사인파 큐잉하기 💡 한 줄 요약SDL_OpenAudioDevice가 want/have 두 스펙을 나눠서 다루는 이유를 협상(negotiation) 구조로 정리하고, have 값을 기준으로 사인파 버퍼를 계산해 SDL_QueueAudio로 재생하는 흐름을 정리한다.🚨 1. 문제 상황SDL2로 오디오를 재생하려고 SDL_OpenAudioDevice를 호출하면 인자로 want와 have(예제 변수명 기준) 두 개의 SDL_AudioSpec을 넘기게 된다.SDL_AudioSpec want{}, have{};want.freq = 48000; want.format = AUDIO_F32SYS; want.channels = 2; want.samples = 1024;SDL_AudioDeviceID dev = SDL_OpenAudio.. 2026. 9. 21.
XWayland: 두 세계를 잇는 다리, 그리고 종합 정리 💡 한 줄 요약이 글은 Wayland 세션에서 X11 전용 앱이 동작할 수 있게 해주는 XWayland의 내부 원리와, $DISPLAY·소켓이 이 상황에서 다시 등장하는 이유를 정리한다. 마지막으로 1부(X11)와 2부(Wayland/컴포지터)의 개념을 하나의 다이어그램으로 종합한다.🚨 1. 이 글을 쓰는 이유 및 대상 독자 {#1}동기: Wayland 데스크톱을 쓰면서도 echo $DISPLAY를 치면 여전히 :1 같은 값이 나오는 걸 보고 의아했던 적이 있다면, 그 답이 XWayland다. Wayland로 완전히 전환됐다고 생각했는데 X11 개념이 다시 튀어나오는 이유를 이 글에서 다룬다.대상 독자: 1부(X11), 2부(Wayland/컴포지터)를 읽고, 두 세계가 실제로 어떻게 공존하는지 궁금한.. 2026. 9. 21.
Wayland와 컴포지터: X11과는 다른 설계 💡 한 줄 요약이 글은 X11의 클라이언트-서버-윈도우매니저 3자 구도가 Wayland에서 클라이언트-컴포지터 2자 구도로 재편되는 이유와, Weston이 레퍼런스 컴포지터로서 하는 역할을 정리한다. (1부에서 다룬 X11 기초를 전제로 한다)🚨 1. 이 글을 쓰는 이유 및 대상 독자 {#1}동기: X11을 어느 정도 이해하고 나면 "Wayland는 그냥 최신 X11이다"라고 오해하기 쉽다. 실제로는 프로토콜 설계 철학 자체가 다르고, 특히 컴포지터라는 개념이 X11에는 없던 역할을 떠맡는다.대상 독자: 1부(X11의 Display/Screen/$DISPLAY)를 읽었거나 X11 클라이언트-서버 구조를 이미 아는 상태에서, Wayland가 구조적으로 뭐가 다른지 궁금한 사람.⚠️ 1부 리마인드 (3줄.. 2026. 9. 21.
X11 기초 이해하기: Display, Screen, 그리고 $DISPLAY의 정체 💡 한 줄 요약이 글은 리눅스 GUI 환경에서 당연하게 쓰지만 정확히는 모르고 지나가기 쉬운 Display, Screen, $DISPLAY 환경변수, /tmp/.X11-unix 소켓의 관계를, X 클라이언트-서버 통신 원리를 통해 정리한다. (Wayland/XWayland는 2부, 3부에서 다룬다) 🚨 1. 이 글을 쓰는 이유 및 대상 독자 {#1}동기: echo $DISPLAY를 치면 :0 같은 값이 나오는데, 이게 정확히 뭘 가리키는지, 왜 :0이고 :1은 뭔지, 소켓 파일과는 무슨 관계인지 설명 없이 그냥 "외워서" 쓰는 경우가 많다.대상 독자: 리눅스 GUI 환경(특히 임베디드 보드나 원격 SSH 환경)에서 $DISPLAY, X 서버 관련 에러를 마주쳐본 사람, 또는 X11의 내부 동작 원리가.. 2026. 9. 21.
OpenGL #08 - GLM으로 만드는 변환 행렬: 이동, 회전, 확대 🎯 이 글에서 얻을 수 있는 것glm::translate, glm::rotate, glm::scale로 모델 행렬을 만드는 방법변환 행렬을 유니폼으로 정점 셰이더에 전달해 물체를 이동·회전·확대하는 방법행렬 곱셈 순서가 정점에 실제 적용되는 순서와 다른 이유와 그 함정glm::mat4 초기화, 라디안 변환, 유니폼 위치 조회에서 자주 하는 실수 회피법시간에 따라 회전하는 애니메이션 변환 구현📸 결과물 미리보기색이 입혀진 사각형이 화면 오른쪽으로 이동한 상태에서 45도 기울어지고, 크기가 약간 커진 채로 그려집니다. 애니메이션 버전에서는 사각형이 자기 중심을 축으로 계속 회전하며, 이 변환은 매 프레임 GPU의 정점 셰이더에서 수행됩니다.🧠 개념 설명변환(Transformation)이란?우리가 만든 .. 2026. 8. 30.