27 lines
1.2 KiB
C++
27 lines
1.2 KiB
C++
#include "sfa.hpp"
|
|
#if __has_include("spriteforge_assets.h")
|
|
#include "spriteforge_assets.h"
|
|
#endif
|
|
#include <raylib.h>
|
|
#include <array>
|
|
#include <cstdint>
|
|
#include <cstdio>
|
|
|
|
int main(int argc,char** argv){
|
|
if(argc!=2){std::fprintf(stderr,"usage: spriteforge_raylib_example sprite.sfa\n");return 2;}
|
|
spriteforge::File file(argv[1]); auto frame=file.frame(0);
|
|
std::array<uint8_t,768> palette{};
|
|
palette[3]=220; palette[4]=65; palette[5]=55;
|
|
palette[6]=80; palette[7]=180; palette[8]=220;
|
|
palette[9]=235; palette[10]=205; palette[11]=95;
|
|
std::array<uint32_t,480*270> pixels{};
|
|
sfa_surface surface{pixels.data(),480,270,480};
|
|
sfa_blit(&file.view(),&frame,palette.data(),nullptr,surface,240,140,SFA_BLEND_OPAQUE);
|
|
InitWindow(1440,810,"SpriteForge SFA v1 raylib example");
|
|
Image image{pixels.data(),480,270,1,PIXELFORMAT_UNCOMPRESSED_R8G8B8A8};
|
|
Texture2D texture=LoadTextureFromImage(image); SetTextureFilter(texture,TEXTURE_FILTER_POINT);
|
|
while(!WindowShouldClose()){UpdateTexture(texture,pixels.data());BeginDrawing();ClearBackground(BLACK);
|
|
DrawTexturePro(texture,{0,0,480,270},{0,0,1440,810},{0,0},0,WHITE);EndDrawing();}
|
|
UnloadTexture(texture);CloseWindow();return 0;
|
|
}
|