Flutter Engine
 
Loading...
Searching...
No Matches
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
15namespace flutter {
16namespace egl {
17
18// Lookup table for GLES functions.
19class 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:
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
67};
68
69} // namespace egl
70} // namespace flutter
71
72#endif // FLUTTER_SHELL_PLATFORM_WINDOWS_EGL_PROC_TABLE_H_
GLenum type
virtual void BindTexture(GLenum target, GLuint texture) const
Definition proc_table.cc:46
virtual void TexParameteri(GLenum target, GLenum pname, GLint param) const
Definition proc_table.cc:50
virtual void DeleteTextures(GLsizei n, const GLuint *textures) const
Definition proc_table.cc:42
virtual void GenTextures(GLsizei n, GLuint *textures) const
Definition proc_table.cc:38
static std::shared_ptr< ProcTable > Create()
Definition proc_table.cc:12
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
uint32_t uint32_t * format
uint32_t * target
#define FML_DISALLOW_COPY_AND_ASSIGN(TypeName)
Definition macros.h:27
FlTexture * texture
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot data
Definition switch_defs.h:36
int32_t height
int32_t width