[DirectDraw] YUV8 Pixelformat

Pagina: 1
Acties:

  • Garoth
  • Registratie: November 2002
  • Laatst online: 04-10-2024
Weet iemand hoe ik een surface het YUV8 pixelformat kan meegeven? Ik doe het volgende maar dat werkt niet:

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    // The pixel format that we want the surface to be in
        ZeroMemory(&ddpf, sizeof(ddpf));
    ddpf.dwSize       = sizeof(DDPIXELFORMAT);
    ddpf.dwFlags      = DDPF_FOURCC;
    ddpf.dwFourCC     = mmioFOURCC('8','V','U','Y');
//  ddpf.dwYUVBitCount= 8;


    // Get the backbuffer.
    dd->ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT; 
    dd->ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; 
    dd->ddsd.dwHeight = 578; 
    dd->ddsd.dwWidth = 768; 
    dd->ddsd.ddpfPixelFormat = ddpf;


    hRet = dd->lpDD->lpVtbl->CreateSurface (dd->lpDD, &dd->ddsd, &dd->lpDDSBack, NULL)          ; 
        
        if (hRet != DD_OK)
    {
        return(FALSE)                   ; 
    }


Ik zou niet weten wat hier fout is, maar hij springt eruit met de error "invalid pixelformat"

Als blikken konden doden, waarom doen ze er dan erwten in?


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
moet je die mmioFOURCC niet injuiste volgorde zetten - dacht dat die letters al vanzelf omdraaide? ie: mmioFOURCC('Y','U','V','8') ? het kan ook dat zijn dat je DD dit niet aankan... (zit je dit trouwens in C te programmeren met je lpVtbl? )

  • Garoth
  • Registratie: November 2002
  • Laatst online: 04-10-2024
Ja ik programmeer in C, maar als ik de mmioFOURCC omdraai, krijg ik precies hetzelfde...

Vergeet ik niet een paar members van de structure of wat is er aan de hand? Want ik weet het zelf echt niet. Ik heb alles erop nagekeken dat ik kon vinden op internet, maar nergens is een fatsoenlijk voorbeeld te vinden....

Als blikken konden doden, waarom doen ze er dan erwten in?