Displaying an Image with OpenGL
⚠ Click here to regain focus ⚠

?

?

t / T Toggle theatre / SUPERtheatre mode

z Toggle filter mode V Revert filter to original state

X, ShiftSpace Toggle category and focus previous

v Invert topics / media as per focus

# Keyboard Navigation

## Global Keys

W, A, P / S, D, N Jump to previous / next markert / T Toggle theatre / SUPERtheatre mode

z Toggle filter mode V Revert filter to original state

## Menu toggling

q Quotes r References f Filter c Credits## Movement

a

w

s

s

d

h
j
k
l

←

↑

↓

↓

→

## Quotes and References Menus

Enter Jump to timecode## Quotes, References and Credits Menus

o Open URL (in new tab)## Filter Menu

x, Space Toggle category and focus nextX, ShiftSpace Toggle category and focus previous

v Invert topics / media as per focus

## Credits Menu

Enter Open URL (in new tab)⏫

Previous: 'GPU Conceptual Overview'

⏫

1:13win32_handmade.cpp: Disable PFD_DOUBLEBUFFER

1:13win32_handmade.cpp: Disable PFD_DOUBLEBUFFER

1:13win32_handmade.cpp: Disable PFD_DOUBLEBUFFER

2:04Give it a shot and see our pink window

2:04Give it a shot and see our pink window

2:04Give it a shot and see our pink window

2:33Recap our current situation

2:33Recap our current situation

2:33Recap our current situation

5:07Blackboard: Ways of drawing quads

5:07Blackboard: Ways of drawing quads

5:07Blackboard: Ways of drawing quads

6:47Blackboard: Using two triangles to draw our quadrilateral textures

6:47Blackboard: Using two triangles to draw our quadrilateral textures

6:47Blackboard: Using two triangles to draw our quadrilateral textures

7:52win32_handmade.cpp: Explain glVertex nomenclature

7:52win32_handmade.cpp: Explain glVertex nomenclature

7:52win32_handmade.cpp: Explain glVertex nomenclature

11:08Blackboard: Covering the screen with triangles

11:08Blackboard: Covering the screen with triangles

11:08Blackboard: Covering the screen with triangles

12:03win32_handmade.cpp: Construct our first OpenGL primitive, a triangle

12:03win32_handmade.cpp: Construct our first OpenGL primitive, a triangle

12:03win32_handmade.cpp: Construct our first OpenGL primitive, a triangle

13:00Run the game and "see" our triangle

13:00Run the game and "see" our triangle

13:00Run the game and "see" our triangle

14:03Blackboard: Fixed function vs programmable pipelines

14:03Blackboard: Fixed function vs programmable pipelines

14:03Blackboard: Fixed function vs programmable pipelines

16:49Blackboard: Matrix multiplication

16:49Blackboard: Matrix multiplication

16:49Blackboard: Matrix multiplication

20:06Blackboard: Homogeneous coordinates and affine transforms

20:06Blackboard: Homogeneous coordinates and affine transforms

20:06Blackboard: Homogeneous coordinates and affine transforms

24:35Blackboard: Model View and Projection matrices

24:35Blackboard: Model View and Projection matrices

24:35Blackboard: Model View and Projection matrices

26:52win32_handmade.cpp: Use glLoadIdentity to set the MODELVIEW and PROJECTION matrices to the identity matrix

26:52win32_handmade.cpp: Use glLoadIdentity to set the MODELVIEW and PROJECTION matrices to the identity matrix

28:59Run the game and see the same thing we started with

28:59Run the game and see the same thing we started with

28:59Run the game and see the same thing we started with

29:04Blackboard: How OpenGL does Clipping

29:04Blackboard: How OpenGL does Clipping

29:04Blackboard: How OpenGL does Clipping

35:04win32_handmade.cpp: Pass glVertex2i the unit cube and then 0.9f

35:04win32_handmade.cpp: Pass glVertex2i the unit cube and then 0.9f

35:04win32_handmade.cpp: Pass glVertex2i the unit cube and then 0.9f

36:11Run the game and see the smaller rectangle

36:11Run the game and see the smaller rectangle

36:11Run the game and see the smaller rectangle

36:47Blackboard: Moving from Clip space to Screen space

36:47Blackboard: Moving from Clip space to Screen space

36:47Blackboard: Moving from Clip space to Screen space

39:47Blackboard: Drawing a texture

39:47Blackboard: Drawing a texture

39:47Blackboard: Drawing a texture

40:34win32_handmade.cpp: Do glColor3f before the two trianges

40:34win32_handmade.cpp: Do glColor3f before the two trianges

40:34win32_handmade.cpp: Do glColor3f before the two trianges

42:00Blackboard: Establishing our u,v texture coordinates

42:00Blackboard: Establishing our u,v texture coordinates

42:00Blackboard: Establishing our u,v texture coordinates

42:25win32_handmade.cpp: Set our texture coordinates

42:25win32_handmade.cpp: Set our texture coordinates

42:25win32_handmade.cpp: Set our texture coordinates

44:17win32_handmade.cpp: Use glTexImage2D to submit a texture to the graphics card

44:17win32_handmade.cpp: Use glTexImage2D to submit a texture to the graphics card

44:17win32_handmade.cpp: Use glTexImage2D to submit a texture to the graphics card

57:38win32_handmade.cpp: Use glTexEnvi and glTexParameteri

57:38win32_handmade.cpp: Use glTexEnvi and glTexParameteri

57:38win32_handmade.cpp: Use glTexEnvi and glTexParameteri

1:00:16Note that we aren't yet specifying the stride

1:00:16Note that we aren't yet specifying the stride

1:00:16Note that we aren't yet specifying the stride

1:01:14win32_handmade.cpp: Explain these parameters

1:01:14win32_handmade.cpp: Explain these parameters

1:01:14win32_handmade.cpp: Explain these parameters

1:04:34Run the game and see that we actually are there yet

1:04:34Run the game and see that we actually are there yet

1:04:34Run the game and see that we actually are there yet

1:04:49"It's all a lie"

^{α}1:04:49"It's all a lie"

^{α}1:04:49"It's all a lie"

^{α}1:06:17Q&A

1:06:17Q&A

1:06:17Q&A

1:07:04win32_handmade.cpp: Introduce global_variable GLuint BlitTextureHandle

1:07:04win32_handmade.cpp: Introduce global_variable GLuint BlitTextureHandle

1:07:04win32_handmade.cpp: Introduce global_variable GLuint BlitTextureHandle

1:10:31win32_handmade.cpp: Set GlobalBlitTextureHandle = 1; rather than using glGenTextures

1:10:31win32_handmade.cpp: Set GlobalBlitTextureHandle = 1; rather than using glGenTextures

1:10:31win32_handmade.cpp: Set GlobalBlitTextureHandle = 1; rather than using glGenTextures

1:23:03Blackboard: glTexImage2D vs glTexSubImage2D

1:23:03Blackboard: glTexImage2D vs glTexSubImage2D

1:23:03Blackboard: glTexImage2D vs glTexSubImage2D

1:30:02Wrap it up

1:30:02Wrap it up

1:30:02Wrap it up

⏬

Next: 'Making OpenGL Use Our Screen Coordinates'

⏬