/* Copyright 2013 The Chromium Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef PPAPI_SIMPLE_PS_CONTEXT_2D_H_ #define PPAPI_SIMPLE_PS_CONTEXT_2D_H_ #include "ppapi/c/pp_resource.h" #include "ppapi/c/ppb_graphics_2d.h" #include "ppapi/c/ppb_image_data.h" #include "ppapi_simple/ps_event.h" #include "sdk_util/macros.h" EXTERN_C_BEGIN typedef struct { int bound; int32_t width; int32_t height; uint32_t stride; uint32_t* data; PP_ImageDataFormat format; PP_Resource graphic_2d; PP_Resource image; } PSContext2D_t; /* * PSContext2DAllocate * * Allocate or free a 2D context object which the library can use to perform * various PPAPI operations on the developer's behalf, such as processing view * change events, swapping buffers, etc... */ PSContext2D_t* PSContext2DAllocate(PP_ImageDataFormat format); void PSContext2DFree(PSContext2D_t* ctx); /* * PSContext2DGetNativeFormat * * Query the native system image format. */ PP_ImageDataFormat PSContext2DGetNativeImageDataFormat(); /* * PSContext2DHandleEvent * * Updates the context such as allocating, freeing, or sizing graphics and * image resources in response to events. */ int PSContext2DHandleEvent(PSContext2D_t* ctx, PSEvent* event); /* * PSContext2DGetBuffer * * Points the data member of the context to the raw pixels of the image for * writing to the screen. The image will become visible after a swap. */ int PSContext2DGetBuffer(PSContext2D_t* ctx); /* * PSContext2DSwapBuffer * * Swaps out the currently visible graphics with the data stored in the image * buffer making it visible. The old image resource will no longer be * available after this call. */ int PSContext2DSwapBuffer(PSContext2D_t* ctx); EXTERN_C_END #endif /* PPAPI_SIMPLE_PS_CONTEXT_2D_H_ */