| Flutter Windows Embedder |

proc_table.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter 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 FLUTTER_SHELL_PLATFORM_WINDOWS_EGL_PROC_TABLE_H_
6 #define FLUTTER_SHELL_PLATFORM_WINDOWS_EGL_PROC_TABLE_H_
7
8 #include <GLES2/gl2.h>
9 #include <GLES2/gl2ext.h>
10 #include <functional>
11 #include <memory>
12
13 #include "flutter/fml/macros.h"
14
15 namespace flutter {
16 namespace egl {
17
18 // Lookup table for GLES functions.
19 class ProcTable {
20 public:
21 static std::shared_ptr<ProcTable> Create();
22
23 virtual ~ProcTable();
24
25 virtual void GenTextures(GLsizei n, GLuint* textures) const;
26 virtual void DeleteTextures(GLsizei n, const GLuint* textures) const;
27 virtual void BindTexture(GLenum target, GLuint texture) const;
28 virtual void TexParameteri(GLenum target, GLenum pname, GLint param) const;
29 virtual void TexImage2D(GLenum target,
30 GLint level,
31 GLint internalformat,
32 GLsizei width,
33 GLsizei height,
34 GLint border,
35 GLenum format,
36 GLenum type,
37 const void* data) const;
38
39 protected:
40 ProcTable();
41
42 private:
43 using GenTexturesProc = void(__stdcall*)(GLsizei n, GLuint* textures);
44 using DeleteTexturesProc = void(__stdcall*)(GLsizei n,
45 const GLuint* textures);
46 using BindTextureProc = void(__stdcall*)(GLenum target, GLuint texture);
47 using TexParameteriProc = void(__stdcall*)(GLenum target,
48 GLenum pname,
49 GLint param);
50 using TexImage2DProc = void(__stdcall*)(GLenum target,
51 GLint level,
52 GLint internalformat,
53 GLsizei width,
54 GLsizei height,
55 GLint border,
56 GLenum format,
57 GLenum type,
58 const void* data);
59
60 GenTexturesProc gen_textures_;
61 DeleteTexturesProc delete_textures_;
62 BindTextureProc bind_texture_;
63 TexParameteriProc tex_parameteri_;
64 TexImage2DProc tex_image_2d_;
65
66 FML_DISALLOW_COPY_AND_ASSIGN(ProcTable);
67 };
68
69 } // namespace egl
70 } // namespace flutter
71
72 #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_EGL_PROC_TABLE_H_
flutter::egl::ProcTable::TexImage2D
virtual void TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *data) const
Definition: proc_table.cc:54
flutter::egl::ProcTable::ProcTable
ProcTable()
flutter::egl::ProcTable
Definition: proc_table.h:19
type
enum flutter::testing::@87::KeyboardChange::Type type
flutter::egl::ProcTable::GenTextures
virtual void GenTextures(GLsizei n, GLuint *textures) const
Definition: proc_table.cc:38
flutter
Definition: accessibility_bridge_windows.cc:11
flutter::egl::ProcTable::BindTexture
virtual void BindTexture(GLenum target, GLuint texture) const
Definition: proc_table.cc:46
flutter::egl::ProcTable::DeleteTextures
virtual void DeleteTextures(GLsizei n, const GLuint *textures) const
Definition: proc_table.cc:42
flutter::egl::ProcTable::TexParameteri
virtual void TexParameteri(GLenum target, GLenum pname, GLint param) const
Definition: proc_table.cc:50
flutter::egl::ProcTable::Create
static std::shared_ptr< ProcTable > Create()
Definition: proc_table.cc:12
flutter::egl::ProcTable::~ProcTable
virtual ~ProcTable()