<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenGL on Cigarettes &amp; Coffee</title><link>https://cignc.dev/tags/opengl/</link><description>Recent content in OpenGL on Cigarettes &amp; Coffee</description><generator>Hugo</generator><language>ko-kr</language><lastBuildDate>Tue, 12 May 2026 03:27:06 +0900</lastBuildDate><atom:link href="https://cignc.dev/tags/opengl/index.xml" rel="self" type="application/rss+xml"/><item><title>🍪 Cookie Engine - 1. SDL and OpenGL</title><link>https://cignc.dev/posts/cookie-engine/1-sdl-and-opengl/</link><pubDate>Tue, 12 May 2026 03:27:06 +0900</pubDate><guid>https://cignc.dev/posts/cookie-engine/1-sdl-and-opengl/</guid><description>&lt;ul&gt;
&lt;li&gt;이전 글: &lt;a href="../0-introduction/"&gt;🍪 Cookie Engine - 0. Introduction&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;우리가 만들려는 첫 화면은 아주 단순하다.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;프로그램 시작
 -&amp;gt; SDL 초기화
 -&amp;gt; SDL 창 생성
 -&amp;gt; OpenGL context 생성
 -&amp;gt; GLAD로 OpenGL 함수 로딩
 -&amp;gt; GPU에 sphere 정점/인덱스 데이터 업로드
 -&amp;gt; 셰이더 생성
 -&amp;gt; 매 프레임 화면 지우기
 -&amp;gt; sphere draw call 호출
 -&amp;gt; 화면에 결과 출력
 -&amp;gt; 프로그램 종료 시 리소스 정리
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;이 흐름을 계층적으로 조금 더 나누면 다음과 같다.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;platform layer
 -&amp;gt; SDL3 담당
 -&amp;gt; 창, 이벤트, 입력, OpenGL context 생성

graphics API layer
 -&amp;gt; OpenGL 담당
 -&amp;gt; GPU 리소스 생성, 셰이더, 버퍼, 렌더링 상태, draw call 담당

OpenGL loader layer
 -&amp;gt; GLAD 담당
 -&amp;gt; OpenGL 함수 포인터를 런타임에 가져옴
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;여기서 &lt;strong&gt;SDL&lt;/strong&gt;은 &lt;strong&gt;플랫폼 추상화 계층&lt;/strong&gt;이고, &lt;strong&gt;OpenGL&lt;/strong&gt;은 &lt;strong&gt;렌더링 API&lt;/strong&gt;다.&lt;/p&gt;</description></item></channel></rss>