DirectFB사용하여 도형을 그리는 간단한 소스의 에러 질문입니다.
#include
#include
#include
static IDirectFB *dfb = NULL;
static IDIrectFBSurface *primary = NULL;
static int width = 0;
static int height = 0;
static IDirectFBSurface *logo = NULL;
#define DFBCHECK(x...) \ { \ DFBResult err = x; \ \ if (err != DFB_OK) \ { \ fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \ DirectFBErrorFatal( #x, err ); \ } \ }
int main(int argc, char **argv)
{
int i;
DFBSurfaceDescription dsc;
IDirectFBImageProvider *provider;
DFBCHECK(DirectFBInit (&argc, &argv));
DFBCHECK(DirectFBCreate(&dfb));
DFBCHECK(dfb->SetCooperativeLevel(dfb, DFSCL_FULLSCREEN));
dsc.flags = DSDESC_CAPS;
dsc.caps = DSCAPS_PRIMARY | DSCAPS_FLIPPING; //에러난 부분
DFBCHECK(dfb->CreateSurface(dfb, &dsc, &primary));
DFBCHECK(primary->GetSize(primary, &width, &height));
DFBCHECK(dfb->CreateImageProvider(dfb, ImageFileName, &provider));
** Example) DFBCHECK(dfb->CreateImageProvider(dfb, “/home/a.jpg”, &provider));
DFBCHECK(provider->GetSurfaceDescription(provider, &dsc));
DFBCHECK(dfb->CreateSurface(dfb, &dsc, &logo));
DFBCHECK(provider->RenderTo(provider, logo, NULL));
provider->Release(provider);
for(i = -dsc.width; i < width; i++)
{
DFBCHECK(primary->FillRectangle(primary, 0, 0, width, height));
DFBCHECK(primary->Blit(primary, logo, NULL, i, (height – dsc.height) / 2));
DFBCHECK(primary->Flip(primary, NULL, DSFLIP_WAITFORSYNC));
}
logo->Release(logo);
primary->Release(primary);
dfb->Release(dfb);
return 0;
}
위 소스에서
dsc.caps = DSCAPS_PRIMARY | DSCAPS_FLIPPING; 이부분에서
invalid conversion from 'int' to 'DFBSurfaceCapabilities' [-fpermissive]에러가 발생합니다.
이 에러가 왜 발생하였고 어떻게 해결하면 되는지 알려주세요~
댓글 달기