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