i think it works

This commit is contained in:
maksw committed 2026-04-30 23:52:46 +02:00
commit 0e1479b168
167 files changed
+27008

No files matched your search

+47
View File
@@ -0,0 +1,47 @@
#include <stdint.h>
#include <stddef.h>
void BitBlt(int x, int y, int w, int h, const uint32_t* pixels);
void* HeapAlloc(void* heap, unsigned long flags, size_t size);
int HeapFree(void* heap, unsigned long flags, void* mem);
_Noreturn void ExitProcess(unsigned int code);
_Noreturn void ExitThread(unsigned long code);
void OutputDebugStringA(const char* s);
int main() {
OutputDebugStringA("Hello from the shell!\n");
int width = 300;
int height = 300;
// Allocate space for uint32_t (4 bytes per pixel)
uint32_t* image = (uint32_t *)HeapAlloc(NULL, 0, width * height * sizeof(uint32_t));
int tileSize = 8;
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
uint32_t color1 = 0xFFFFFFFF; // White
uint32_t color2 = 0xFF000000; // Black
int tileX = x / tileSize;
int tileY = y / tileSize;
if ((tileX + tileY) % 2 == 0) {
image[y * width + x] = color1;
} else {
image[y * width + x] = color2;
}
}
}
// Pass the 32-bit buffer directly to BitBlt
BitBlt(600, 400, width, height, image);
for (size_t i = 0; i < 1000000000; i++) {
// burn!
}
OutputDebugStringA("Goodbye from the shell!\n");
ExitProcess(0);
}