GPUTexture: GL Backend Isolation

This is a massive cleanup needed for vulkan support T68990. It provides:

- More meaningful enums with conversion functions.
- Less hacky supports of arrays and cubemaps (all considered layered).
- More inline with the stateless design of vulkan and modern GL.
- Methods Fallbacks are using framebuffer functions that are wrapped
  instead of implementing inside the texture module.

What is not in there:
- API change.
- Samplers support (breaks a few effects).

# Conflicts:
#	source/blender/gpu/GPU_texture.h
This commit is contained in:
2020-09-05 17:29:51 +02:00
parent db21c12abe
commit c766d9b9dc
11 changed files with 1438 additions and 2101 deletions

View File

@@ -37,6 +37,7 @@ namespace debug {
# define GL_CHECK_RESOURCES(info)
#endif
void raise_gl_error(const char *info);
void check_gl_error(const char *info);
void check_gl_resources(const char *info);
void init_gl_callbacks(void);