Jag har skrivit ett eget bildformat att använda i mina spel (vet att det redan finns hundratals bildformat men det är alltid kul att göra något eget :p) och nu undrar jag, hur läser jag snabbast in det?
Som det är nu använder jag CreateCompatibleDC och CreateCompatibleBitmap till displayens hDC och sedan ritar jag ut pixel för pixel med SetPixel. Finns det någon snabbare metod att göra det på?
Att rita med Windows GUI är aldrig snabbt och är inte lämpligt för ett spel.
Jag kan själv inte DirectX men i OpenGL är det väldigt enkelt att läsa in texturer genom att först läsa in pixeldatan i en array och sedan skicka arrayen till en av OpenGLs funktioner.
Att skapa ett eget bildformat vinner du nog inte så mycket på, för det finns som du säger, redan så många och du kommer nog inte lyckas skapa ett bildformat själv som komprimerar bättre än några av de existerande. ;) :p På http://www.wotsit.org/ kan du läsa hur de vanligaste filformaten är uppbyggda.
Spelet är inte något tungt direkt utan ett litet 2D-spel och för det tycker jag GDI passar rätt bra och enda orsaken till att jag vill göra ett eget bildformat är att jag dels vill kolla om jag kan samt att jag inte vill låta spelare kunna ändra mina bilder. :)
Det fick bli så att jag använder SetDIBitsToDevice vilket funkar snabbt nog. :)