다음을 통해 공유


GPE::AllocSurface (Windows CE 5.0)

Send Feedback

This method executes when the driver must allocate storage for surface pixels.

SCODE GPE::AllocSurface( GPESurf** ppSurf, int width, int height, EGPEFormat format, int surfaceFlags);

Parameters

  • ppSurf
    [out] Pointer to the memory allocated by the GPE::AllocSurface method.
  • width
    [in] Width, in pixels, of the surface to allocate.
  • height
    [in] Height, in pixels, of the surface to allocate.
  • format
    [in] Format of the surface.
  • surfaceFlags
    [in] One of the flags GPE_REQUIRE_VIDEO_MEMORY or GPE_PREFER_VIDEO_MEMORY, which specify where to allocate the memory

Return Values

If GPE_REQUIRE_VIDEO_MEMORY is set in the surfaceFlags parameter, the call returns one of two error values: if the available video memory is insufficient, the call returns E_NOT_ENOUGH_MEMORY, whereas if the allocation is inappropriate for video memory, such as an incorrect pixel format, the call returns E_INVALID_PARAMETER.

Remarks

Display drivers allocate surfaces at initialization time for the video frame buffer, and possibly the cursor, when the graphics device interface (GDI) calls the DrvCreateDeviceBitmap function. GPE::AllocSurface, a required method, implements surface allocation within the driver.

For video memory allocation, the driver should implement a class, derived from GPESurf that contains extra information, such as a pointer to the allocator used when freeing the memory. Refer to the Node2D class for information about a supplied memory allocator that you can use for rectangular allocation requirements.

The following code example shows the system memory allocation for this method.

*ppSurf = new GPESurf( width, height, format );
if(* ppSurf )
  {
  //check that the bitmap bits were allocated
  if (NULL == ((*ppSurf)->Buffer()))
    {
    delete *ppSurf;
    }
    else
    {
    return S_OK;
    }
  }
return E_NOT_ENOUGH_MEMORY;

The surfaceFlags parameter can contain GPE_REQUIRE_VIDEO_MEMORY or GPE_PREFER_VIDEO_MEMORY, although neither is required. For GPE_PREFER_VIDEO_MEMORY, the driver should allocate, if possible, the surface from video memory. Otherwise, the driver should use system memory.

Requirements

OS Versions: Windows CE 1.0 and later.
Header: Gpe.h.
Link Library: Gpe_lib.lib.

See Also

Display Drivers | GPESurf | Node2D

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.