Day 27 complete.
This commit is contained in:
+66
@@ -37,6 +37,64 @@ static void GameOutputSound(game_state *GameState,
|
||||
*/
|
||||
}
|
||||
|
||||
static void ClearBackground(game_offscreen_buffer *Buffer)
|
||||
{
|
||||
S32 Width, Height, X;
|
||||
|
||||
Width = Buffer->Width;
|
||||
Height = Buffer->Height;
|
||||
|
||||
for(X = 0; X < Width * Height; X++) {
|
||||
U32 *Pixel = &((U32 *)Buffer->Memory)[X];
|
||||
*Pixel = 0xFFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
static S32 RoundF32toS32(F32 Real32)
|
||||
{
|
||||
S32 Result = (S32)(Real32 + 0.5f);
|
||||
return Result;
|
||||
}
|
||||
|
||||
static void DrawRectangle(game_offscreen_buffer *Buffer,
|
||||
F32 RealMinX, F32 RealMinY,
|
||||
F32 RealMaxX, F32 RealMaxY,
|
||||
U32 Color)
|
||||
/*F32 R, F32 G, F32 B)*/
|
||||
{
|
||||
S32 MinX = RoundF32toS32(RealMinX);
|
||||
S32 MinY = RoundF32toS32(RealMinY);
|
||||
S32 MaxX = RoundF32toS32(RealMaxX);
|
||||
S32 MaxY = RoundF32toS32(RealMaxY);
|
||||
|
||||
S32 Width = Buffer->Width;
|
||||
S32 Height = Buffer->Height;
|
||||
|
||||
U8 *Row;
|
||||
S32 Y, X;
|
||||
|
||||
if(MinX < 0)
|
||||
MinX = 0;
|
||||
if(MinY < 0)
|
||||
MinY = 0;
|
||||
|
||||
if(MaxX > Width)
|
||||
MaxX = Width;
|
||||
if(MaxY > Height)
|
||||
MaxY = Height;
|
||||
|
||||
Row = ((U8 *)Buffer->Memory + MinX*Buffer->BytesPerPixel +
|
||||
MinY*Buffer->Pitch);
|
||||
for(Y = MinY; Y < MaxY; Y++) {
|
||||
U32 *Pixel = (U32 *)Row;
|
||||
for(X = MinX; X < MaxX; X++) {
|
||||
*(U32 *)Pixel = Color;
|
||||
Pixel++;
|
||||
}
|
||||
Row += Buffer->Pitch;
|
||||
}
|
||||
}
|
||||
|
||||
static void RenderRectangle(game_offscreen_buffer *Buffer, S32 MouseX,
|
||||
S32 MouseY)
|
||||
{
|
||||
@@ -87,6 +145,14 @@ void UpdateAndRender(thread_context *Thread, game_memory *Memory,
|
||||
}
|
||||
}
|
||||
|
||||
DrawRectangle(Buffer, 0.0f, 0.0f, (F32)(Buffer->Width),
|
||||
(F32)(Buffer->Height), 0x000000);
|
||||
DrawRectangle(Buffer, 10.0f, 10.0f, 20.0f, 20.0f, 0xFFFFFF);
|
||||
|
||||
DrawRectangle(Buffer,
|
||||
(F32)(Input->MouseX), (F32)(Input->MouseY),
|
||||
(F32)(Input->MouseX) + 10.0f, (F32)(Input->MouseY) + 10.0f,
|
||||
0xFF0000);
|
||||
GameOutputSound(GameState, SoundBuffer, 400);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user