summaryrefslogtreecommitdiffstats
path: root/gpu/pgl/pgl.h
blob: 118d6fecdfa3e2424dd7eeb5bb0cf1fa6d33f29e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Copyright (c) 2010 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 GPU_PGL_PGL_H
#define GPU_PGL_PGL_H

#include "npapi.h"
#include "npapi_extensions.h"

#define PGL_TRUE          1
#define PGL_FALSE         0

#define PGL_NO_CONTEXT    ((PGLContext) 0)

#ifdef __cplusplus
extern "C" {
#endif

typedef void* PGLContext;
typedef unsigned int PGLBoolean;
typedef int32 PGLInt;

// These are the same error codes as used by EGL.
enum {
  PGL_SUCCESS             = 0x3000,
  PGL_NOT_INITIALIZED     = 0x3001,
  PGL_BAD_CONTEXT         = 0x3006,
  PGL_BAD_PARAMETER       = 0x300C,
  PGL_CONTEXT_LOST        = 0x300E
};

// Initialize the PGL library. This must have completed before any other PGL
// functions are invoked.
PGLBoolean pglInitialize();

// Terminate the PGL library. This must be called after any other PGL functions
// have completed.
PGLBoolean pglTerminate();

// Create A PGL context from a Pepper 3D device context.
PGLContext pglCreateContext(NPP npp,
                            NPDevice* device,
                            NPDeviceContext3D* device_context);

// Set the current PGL context for the calling thread.
PGLBoolean pglMakeCurrent(PGLContext pgl_context);

// Get the calling thread's current PGL context.
PGLContext pglGetCurrentContext(void);

// Display everything that has been rendered since the last call.
PGLBoolean pglSwapBuffers(void);

// Destroy the given PGL context.
PGLBoolean pglDestroyContext(PGLContext pgl_context);

// Return the current PGL error.
PGLInt pglGetError();

#ifdef __cplusplus
}  // extern "C"
#endif

#endif  // GPU_PGL_PGL_H