ugly_example.cpp
Trying to not make it so ugly.unknown
c_cpp
a year ago
2.4 kB
8
Indexable
static void DrawImage(window_buffer WindowBuffer, image Image, u32 ImageStartX, u32 ImageStartY, u32 WindowBufferStartX, u32 WindowBufferStartY) { if(WindowBufferStartX > WindowBuffer.W) return; if(WindowBufferStartY > WindowBuffer.H) return; if(ImageStartX > Image.W) return; if(ImageStartY > Image.H) return; u32 RemainedWidth = WindowBuffer.W - WindowBufferStartX; u32 RemainedHeight = WindowBuffer.H - WindowBufferStartY; if(Image.W > RemainedWidth) { Image.W = RemainedWidth; } if(Image.H > RemainedHeight) { Image.H = RemainedHeight; } u32* DestPixels = (u32*)WindowBuffer.Memory + WindowBufferStartY * WindowBuffer.W + WindowBufferStartX; Image.Memory += Image.Pitch * ImageStartY + ImageStartX; Image.W -= ImageStartX; Image.H -= ImageStartY; for(u32 Row = 0; Row < Image.H; ++Row) { for(u32 Col = 0; Col < Image.W; ++Col) { DestPixels[Row * WindowBuffer.W + Col] = Image.Memory[Row * Image.Pitch + Col]; } } } // --------- Basic Usage Code, inside my main loop ------// { static u32 ImageStartX = 0; static u32 ImageStartY = 0; static u32 BufferStartX = 0; static u32 BufferStartY = 0; if((Keyboard.A.IsDown)) { if(BufferStartX == 0) { ImageStartX += 10; } else { BufferStartX -= 10; } } if((Keyboard.D.IsDown)) { if(ImageStartX > 0) { ImageStartX -= 10; } else { BufferStartX += 10; } } if((Keyboard.W.IsDown)) { if(BufferStartY == 0) { ImageStartY += 10; } else { BufferStartY -= 10; } } if((Keyboard.S.IsDown)) { if(ImageStartY > 0) { ImageStartY -= 10; } else { BufferStartY += 10; } } FillBackground(WindowBuffer, COLOR_WHITE); DrawImage(WindowBuffer, Image, ImageStartX ,ImageStartY, BufferStartX, BufferStartY); }
Editor is loading...
Leave a Comment