DirectFB사용하여 도형을 그리는 간단한 소스의 에러 질문입니다.

muckhiang의 이미지

#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]에러가 발생합니다.

이 에러가 왜 발생하였고 어떻게 해결하면 되는지 알려주세요~