Basic Linear Bitmap Blending
?
?

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

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

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)
0:00Prestream stuff
0:00Prestream stuff
0:00Prestream stuff
9:18Intro and welcome
9:18Intro and welcome
9:18Intro and welcome
10:52Where we left off from last time
10:52Where we left off from last time
10:52Where we left off from last time
11:17Fixing the hero's color
11:17Fixing the hero's color
11:17Fixing the hero's color
16:16Figuring out what the shift values are
16:16Figuring out what the shift values are
16:16Figuring out what the shift values are
18:48Bitscanforward
18:48Bitscanforward
18:48Bitscanforward
27:53Renaming bitscanforward to FindLeastSignificantSetBit
27:53Renaming bitscanforward to FindLeastSignificantSetBit
27:53Renaming bitscanforward to FindLeastSignificantSetBit
29:36The intrinsics thing
29:36The intrinsics thing
29:36The intrinsics thing
30:16Finding out what compiler we're on
30:16Finding out what compiler we're on
30:16Finding out what compiler we're on
31:27Making a compromise: Allowing the intrinsics file access to the platform layer
31:27Making a compromise: Allowing the intrinsics file access to the platform layer
31:27Making a compromise: Allowing the intrinsics file access to the platform layer
33:20Determining what compiler is being used
33:20Determining what compiler is being used
33:20Determining what compiler is being used
41:20Simple version of using the alpha channel
41:20Simple version of using the alpha channel
41:20Simple version of using the alpha channel
45:20Alpha as an opacity value
45:20Alpha as an opacity value
45:20Alpha as an opacity value
46:36Implementing 0-128 off, 129 onwards on for alpha
46:36Implementing 0-128 off, 129 onwards on for alpha
46:36Implementing 0-128 off, 129 onwards on for alpha
49:20The dumb, slow way to do alpha blending.
49:20The dumb, slow way to do alpha blending.
49:20The dumb, slow way to do alpha blending.
50:04Krita crashes..
50:04Krita crashes..
50:04Krita crashes..
50:47Blackboard session explaining alpha blending using the background value
50:47Blackboard session explaining alpha blending using the background value
50:47Blackboard session explaining alpha blending using the background value
51:01'Deriving' the formula for a linear blend
51:01'Deriving' the formula for a linear blend
51:01'Deriving' the formula for a linear blend
58:02The canonical form of a linear blend
58:02The canonical form of a linear blend
58:02The canonical form of a linear blend
58:45How the 't' works in the linear blend formula
58:45How the 't' works in the linear blend formula
58:45How the 't' works in the linear blend formula
1:00:35Implementing the floating point version of linear blend
1:00:35Implementing the floating point version of linear blend
1:00:35Implementing the floating point version of linear blend
1:06:55Drawing the herohead at the location of the player
1:06:55Drawing the herohead at the location of the player
1:06:55Drawing the herohead at the location of the player
1:07:23Q&A
🗩
1:07:23Q&A
🗩
1:07:23Q&A
🗩
1:08:06Stream spots a typo!
1:08:06Stream spots a typo!
1:08:06Stream spots a typo!
1:08:37Stream suggests to assert the bitmap assertion mode!
1:08:37Stream suggests to assert the bitmap assertion mode!
1:08:37Stream suggests to assert the bitmap assertion mode!
1:09:12You do not need #pragma intrinsic if you include <intrin.h>
1:09:12You do not need #pragma intrinsic if you include <intrin.h>
1:09:12You do not need #pragma intrinsic if you include <intrin.h>
1:10:53Would it be worthwhile to avoid converting to float while doing the alpha blend?
1:10:53Would it be worthwhile to avoid converting to float while doing the alpha blend?
1:10:53Would it be worthwhile to avoid converting to float while doing the alpha blend?
1:12:46Why is the Windows-logo still visible at the top?
1:12:46Why is the Windows-logo still visible at the top?
1:12:46Why is the Windows-logo still visible at the top?
1:14:11Are there other ways to alpha blend and should you be taking into account which colors are easier to see?
1:14:11Are there other ways to alpha blend and should you be taking into account which colors are easier to see?
1:14:11Are there other ways to alpha blend and should you be taking into account which colors are easier to see?
1:21:06Are we at all concerned with the destinations alpha?
1:21:06Are we at all concerned with the destinations alpha?
1:21:06Are we at all concerned with the destinations alpha?
1:25:28Will the final blend favor the source over the destination, or is linear good enough?
1:25:28Will the final blend favor the source over the destination, or is linear good enough?
1:25:28Will the final blend favor the source over the destination, or is linear good enough?
1:25:59How would you deal with other picture formats such as png, jpeg, etc.
1:25:59How would you deal with other picture formats such as png, jpeg, etc.
1:25:59How would you deal with other picture formats such as png, jpeg, etc.
1:26:53Why is the mask so complicated to use?
1:26:53Why is the mask so complicated to use?
1:26:53Why is the mask so complicated to use?
1:27:51Did you mean the other compiler LLVM or Clang?
1:27:51Did you mean the other compiler LLVM or Clang?
1:27:51Did you mean the other compiler LLVM or Clang?
1:28:37In the bitscan function what about returning index negative one if not found?
1:28:37In the bitscan function what about returning index negative one if not found?
1:28:37In the bitscan function what about returning index negative one if not found?
1:29:04Can you go over the linear alpha blend diagram again?
1:29:04Can you go over the linear alpha blend diagram again?
1:29:04Can you go over the linear alpha blend diagram again?
1:34:36Is the large VirtualAlloc() at the beginning similar to Linux mmap()?
1:34:36Is the large VirtualAlloc() at the beginning similar to Linux mmap()?
1:34:36Is the large VirtualAlloc() at the beginning similar to Linux mmap()?
1:35:51What bitvalue is 50% brightness?
1:35:51What bitvalue is 50% brightness?
1:35:51What bitvalue is 50% brightness?
1:37:34Does the display bitmap operation actually do anything with the alpha channel?
1:37:34Does the display bitmap operation actually do anything with the alpha channel?
1:37:34Does the display bitmap operation actually do anything with the alpha channel?
1:37:58The solid curve on Wikipedia's gamma correction is the linear space intensity. Should be what you're looking for.
1:37:58The solid curve on Wikipedia's gamma correction is the linear space intensity. Should be what you're looking for.
1:37:58The solid curve on Wikipedia's gamma correction is the linear space intensity. Should be what you're looking for.