Displaying an Image with OpenGL

?

?# Keyboard Navigation

## Global Keys

[, < / ], > Jump to previous / next episode

W, K, P / S, J, N Jump to previous / next timestamp

t / T Toggle theatre / SUPERtheatre mode

V Revert filter to original state Y Select link (requires manual Ctrl-c)## Menu toggling

q Quotes
r References
f Filter
y Link
c Credits
## In-Menu and Index Controls

## Quotes and References Menus and Index

Enter Jump to timestamp

## Quotes, References and Credits Menus

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

x, Space Toggle category and focus next

X, ShiftSpace Toggle category and focus previous

v Invert topics / media as per focus## Filter and Link Menus

z Toggle filter / linking mode
## Credits Menu

Enter Open URL (in new tab)

W, K, P / S, J, N Jump to previous / next timestamp

t / T Toggle theatre / SUPERtheatre mode

V Revert filter to original state Y Select link (requires manual Ctrl-c)

a

w

s

s

d

h
j
k
l

←

↑

↓

↓

→

Esc Close menu / unfocus timestamp

X, ShiftSpace Toggle category and focus previous

v Invert topics / media as per focus

⏫

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'

⏬