21 lines
1.2 KiB
C
21 lines
1.2 KiB
C
#include "sfa.h"
|
|
|
|
int main(int argc,char** argv){
|
|
sfa_owned file; sfa_frame frame; sfa_animation animation;sfa_direction direction;uint16_t layer;uint8_t palette[768]={0}; uint8_t map[256];
|
|
uint32_t pixels[16]; sfa_surface surface={pixels,4,4,4}; unsigned i; sfa_light light={0,0,1,32};
|
|
if(argc!=2||sfa_load_file(argv[1],&file)!=SFA_OK)return 1;
|
|
if(sfa_get_frame(&file.view,0,&frame)!=SFA_OK)return 2;
|
|
if(sfa_get_animation(&file.view,0,&animation)!=SFA_OK||strcmp(animation.name,"idle"))return 7;
|
|
if(sfa_get_direction(&file.view,0,&direction)!=SFA_OK||direction.centidegrees!=0)return 8;
|
|
if(sfa_get_layer_order(&file.view,0,0,&layer)!=SFA_OK||layer!=0)return 9;
|
|
for(i=0;i<256;i++)map[i]=(uint8_t)i;
|
|
palette[3]=255; palette[7]=255; palette[11]=255;
|
|
for(i=0;i<16;i++)pixels[i]=0xff101010u;
|
|
if(sfa_blit(&file.view,&frame,palette,0,surface,2,3,SFA_BLEND_OPAQUE)!=SFA_OK)return 3;
|
|
if(pixels[1]!=0xff0000ffu||pixels[2]!=0xff0000ffu)return 4;
|
|
map[1]=2;
|
|
if(sfa_blit(&file.view,&frame,palette,map,surface,2,3,SFA_BLEND_ALPHA50)!=SFA_OK)return 5;
|
|
if(sfa_blit_lit(&file.view,&frame,palette,0,surface,2,3,SFA_BLEND_OPAQUE,light)!=SFA_OK)return 6;
|
|
sfa_free_file(&file);return 0;
|
|
}
|