1// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef IMPORTVBO_H_INCLUDED
6#define IMPORTVBO_H_INCLUDED
7
8#include <GL/gl.h>
9#include <GL/glext.h>
10
11#ifndef IMPORTVBO_API
12#define IMPORTVBO_API extern
13#endif  // IMPORTVBO_API
14
15#ifndef IMPORTVBO_FNPTRINIT
16#define IMPORTVBO_FNPTRINIT
17#endif  // IMPORTVBO_FNPTRINT
18
19IMPORTVBO_API void (*FP_glGenBuffersARB)(GLsizei, GLuint *) IMPORTVBO_FNPTRINIT;
20IMPORTVBO_API void (*FP_glBindBufferARB)(GLenum, GLuint) IMPORTVBO_FNPTRINIT;
21IMPORTVBO_API void (*FP_glBufferDataARB)(GLenum, GLsizeiptrARB, const GLvoid *, GLenum) IMPORTVBO_FNPTRINIT;
22IMPORTVBO_API void (*FP_glBufferSubDataARB)(GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *) IMPORTVBO_FNPTRINIT;
23IMPORTVBO_API void (*FP_glDeleteBuffersARB)(GLsizei, const GLuint *) IMPORTVBO_FNPTRINIT;
24
25typedef void (*FT_glGenBuffersARB)(GLsizei, GLuint *);
26typedef void (*FT_glBindBufferARB)(GLenum, GLuint);
27typedef void (*FT_glBufferDataARB)(GLenum, GLsizeiptrARB, const GLvoid *, GLenum);
28typedef void (*FT_glBufferSubDataARB)(GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *);
29typedef void (*FT_glDeleteBuffersARB)(GLsizei, const GLuint *);
30
31// We define gl functions without the ARB postfix so GL and GLES code
32// will have the same look.
33#define glGenBuffers FP_glGenBuffersARB
34#define glBindBuffer FP_glBindBufferARB
35#define glBufferData FP_glBufferDataARB
36#define glBufferSubData FP_glBufferSubDataARB
37#define glDeleteBuffers FP_glDeleteBuffersARB
38
39extern int loadVBOProcs();
40
41#endif  // IMPORTVBO_H_INCLUDED
42
43