From 4452bea2f170ec7fe48c223c8c499f1eb9b5356c Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Thu, 16 Mar 2017 23:32:35 -0400 Subject: [PATCH] move Gawain library to intern Before now it lived in source/blender/gpu for convenience. Only a few files in the gpu module use Gawain directly. Tested on Mac, time to push and test on Windows. Todo: some CMake magic to make it easy to #include "gawain/some_header.h" from any C or H file. Main problem here is the many editors that include GPU_immediate.h which includes Gawain's immediate.h -- is there a way to avoid changing every editor's CMakeLists? --- build_files/cmake/macros.cmake | 1 + intern/CMakeLists.txt | 1 + intern/gawain/CMakeLists.txt | 34 +++++++++++++++++++ .../gawain}/gawain/attrib_binding.h | 0 .../gpu => intern/gawain}/gawain/batch.h | 0 .../gpu => intern/gawain}/gawain/buffer_id.h | 0 .../gpu => intern/gawain}/gawain/common.h | 0 .../gpu => intern/gawain}/gawain/element.h | 0 .../gpu => intern/gawain}/gawain/imm_util.h | 0 .../gpu => intern/gawain}/gawain/immediate.h | 0 .../gpu => intern/gawain}/gawain/primitive.h | 0 .../gawain}/gawain/shader_interface.h | 0 .../gawain}/gawain/vertex_buffer.h | 0 .../gawain}/gawain/vertex_format.h | 0 .../gawain/src}/attrib_binding.c | 0 .../gpu/gawain => intern/gawain/src}/batch.c | 0 .../gawain/src}/buffer_id.cpp | 0 .../gawain => intern/gawain/src}/element.c | 0 .../gawain => intern/gawain/src}/imm_util.c | 0 .../gawain => intern/gawain/src}/immediate.c | 0 .../gawain => intern/gawain/src}/primitive.c | 0 .../gawain/src}/shader_interface.c | 0 .../gawain/src}/vertex_buffer.c | 0 .../gawain/src}/vertex_format.c | 0 source/blender/gpu/CMakeLists.txt | 23 +------------ source/blender/gpu/GPU_batch.h | 6 +++- source/blender/gpu/GPU_immediate.h | 9 +++-- 27 files changed, 49 insertions(+), 25 deletions(-) create mode 100644 intern/gawain/CMakeLists.txt rename {source/blender/gpu => intern/gawain}/gawain/attrib_binding.h (100%) rename {source/blender/gpu => intern/gawain}/gawain/batch.h (100%) rename {source/blender/gpu => intern/gawain}/gawain/buffer_id.h (100%) rename {source/blender/gpu => intern/gawain}/gawain/common.h (100%) rename {source/blender/gpu => intern/gawain}/gawain/element.h (100%) rename {source/blender/gpu => intern/gawain}/gawain/imm_util.h (100%) rename {source/blender/gpu => intern/gawain}/gawain/immediate.h (100%) rename {source/blender/gpu => intern/gawain}/gawain/primitive.h (100%) rename {source/blender/gpu => intern/gawain}/gawain/shader_interface.h (100%) rename {source/blender/gpu => intern/gawain}/gawain/vertex_buffer.h (100%) rename {source/blender/gpu => intern/gawain}/gawain/vertex_format.h (100%) rename {source/blender/gpu/gawain => intern/gawain/src}/attrib_binding.c (100%) rename {source/blender/gpu/gawain => intern/gawain/src}/batch.c (100%) rename {source/blender/gpu/gawain => intern/gawain/src}/buffer_id.cpp (100%) rename {source/blender/gpu/gawain => intern/gawain/src}/element.c (100%) rename {source/blender/gpu/gawain => intern/gawain/src}/imm_util.c (100%) rename {source/blender/gpu/gawain => intern/gawain/src}/immediate.c (100%) rename {source/blender/gpu/gawain => intern/gawain/src}/primitive.c (100%) rename {source/blender/gpu/gawain => intern/gawain/src}/shader_interface.c (100%) rename {source/blender/gpu/gawain => intern/gawain/src}/vertex_buffer.c (100%) rename {source/blender/gpu/gawain => intern/gawain/src}/vertex_format.c (100%) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 43c341c79c7..7b47578cbc7 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -598,6 +598,7 @@ function(SETUP_BLENDER_SORTED_LIBS) bf_bmesh bf_gpu bf_draw + bf_intern_gawain bf_blenloader bf_blenkernel bf_physics diff --git a/intern/CMakeLists.txt b/intern/CMakeLists.txt index bfe230250ae..af3b9296077 100644 --- a/intern/CMakeLists.txt +++ b/intern/CMakeLists.txt @@ -33,6 +33,7 @@ add_subdirectory(opencolorio) add_subdirectory(mikktspace) add_subdirectory(glew-mx) add_subdirectory(eigen) +add_subdirectory(gawain) if(WITH_GAMEENGINE_DECKLINK) add_subdirectory(decklink) diff --git a/intern/gawain/CMakeLists.txt b/intern/gawain/CMakeLists.txt new file mode 100644 index 00000000000..99adab851c7 --- /dev/null +++ b/intern/gawain/CMakeLists.txt @@ -0,0 +1,34 @@ + +set(INC gawain) + +set(INC_SYS ${GLEW_INCLUDE_PATH}) + +set(SRC + src/attrib_binding.c + src/batch.c + src/element.c + src/buffer_id.cpp + src/immediate.c + src/imm_util.c + src/primitive.c + src/shader_interface.c + src/vertex_buffer.c + src/vertex_format.c + + gawain/attrib_binding.h + gawain/batch.h + gawain/buffer_id.h + gawain/common.h + gawain/element.h + gawain/immediate.h + gawain/imm_util.h + gawain/primitive.h + gawain/shader_interface.h + gawain/vertex_buffer.h + gawain/vertex_format.h +) + +# remove this when we switch to core profile +add_definitions(-DWITH_GL_PROFILE_COMPAT) + +blender_add_lib(bf_intern_gawain "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/gpu/gawain/attrib_binding.h b/intern/gawain/gawain/attrib_binding.h similarity index 100% rename from source/blender/gpu/gawain/attrib_binding.h rename to intern/gawain/gawain/attrib_binding.h diff --git a/source/blender/gpu/gawain/batch.h b/intern/gawain/gawain/batch.h similarity index 100% rename from source/blender/gpu/gawain/batch.h rename to intern/gawain/gawain/batch.h diff --git a/source/blender/gpu/gawain/buffer_id.h b/intern/gawain/gawain/buffer_id.h similarity index 100% rename from source/blender/gpu/gawain/buffer_id.h rename to intern/gawain/gawain/buffer_id.h diff --git a/source/blender/gpu/gawain/common.h b/intern/gawain/gawain/common.h similarity index 100% rename from source/blender/gpu/gawain/common.h rename to intern/gawain/gawain/common.h diff --git a/source/blender/gpu/gawain/element.h b/intern/gawain/gawain/element.h similarity index 100% rename from source/blender/gpu/gawain/element.h rename to intern/gawain/gawain/element.h diff --git a/source/blender/gpu/gawain/imm_util.h b/intern/gawain/gawain/imm_util.h similarity index 100% rename from source/blender/gpu/gawain/imm_util.h rename to intern/gawain/gawain/imm_util.h diff --git a/source/blender/gpu/gawain/immediate.h b/intern/gawain/gawain/immediate.h similarity index 100% rename from source/blender/gpu/gawain/immediate.h rename to intern/gawain/gawain/immediate.h diff --git a/source/blender/gpu/gawain/primitive.h b/intern/gawain/gawain/primitive.h similarity index 100% rename from source/blender/gpu/gawain/primitive.h rename to intern/gawain/gawain/primitive.h diff --git a/source/blender/gpu/gawain/shader_interface.h b/intern/gawain/gawain/shader_interface.h similarity index 100% rename from source/blender/gpu/gawain/shader_interface.h rename to intern/gawain/gawain/shader_interface.h diff --git a/source/blender/gpu/gawain/vertex_buffer.h b/intern/gawain/gawain/vertex_buffer.h similarity index 100% rename from source/blender/gpu/gawain/vertex_buffer.h rename to intern/gawain/gawain/vertex_buffer.h diff --git a/source/blender/gpu/gawain/vertex_format.h b/intern/gawain/gawain/vertex_format.h similarity index 100% rename from source/blender/gpu/gawain/vertex_format.h rename to intern/gawain/gawain/vertex_format.h diff --git a/source/blender/gpu/gawain/attrib_binding.c b/intern/gawain/src/attrib_binding.c similarity index 100% rename from source/blender/gpu/gawain/attrib_binding.c rename to intern/gawain/src/attrib_binding.c diff --git a/source/blender/gpu/gawain/batch.c b/intern/gawain/src/batch.c similarity index 100% rename from source/blender/gpu/gawain/batch.c rename to intern/gawain/src/batch.c diff --git a/source/blender/gpu/gawain/buffer_id.cpp b/intern/gawain/src/buffer_id.cpp similarity index 100% rename from source/blender/gpu/gawain/buffer_id.cpp rename to intern/gawain/src/buffer_id.cpp diff --git a/source/blender/gpu/gawain/element.c b/intern/gawain/src/element.c similarity index 100% rename from source/blender/gpu/gawain/element.c rename to intern/gawain/src/element.c diff --git a/source/blender/gpu/gawain/imm_util.c b/intern/gawain/src/imm_util.c similarity index 100% rename from source/blender/gpu/gawain/imm_util.c rename to intern/gawain/src/imm_util.c diff --git a/source/blender/gpu/gawain/immediate.c b/intern/gawain/src/immediate.c similarity index 100% rename from source/blender/gpu/gawain/immediate.c rename to intern/gawain/src/immediate.c diff --git a/source/blender/gpu/gawain/primitive.c b/intern/gawain/src/primitive.c similarity index 100% rename from source/blender/gpu/gawain/primitive.c rename to intern/gawain/src/primitive.c diff --git a/source/blender/gpu/gawain/shader_interface.c b/intern/gawain/src/shader_interface.c similarity index 100% rename from source/blender/gpu/gawain/shader_interface.c rename to intern/gawain/src/shader_interface.c diff --git a/source/blender/gpu/gawain/vertex_buffer.c b/intern/gawain/src/vertex_buffer.c similarity index 100% rename from source/blender/gpu/gawain/vertex_buffer.c rename to intern/gawain/src/vertex_buffer.c diff --git a/source/blender/gpu/gawain/vertex_format.c b/intern/gawain/src/vertex_format.c similarity index 100% rename from source/blender/gpu/gawain/vertex_format.c rename to intern/gawain/src/vertex_format.c diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt index 391efdaeb00..1791b34d4c8 100644 --- a/source/blender/gpu/CMakeLists.txt +++ b/source/blender/gpu/CMakeLists.txt @@ -42,6 +42,7 @@ set(INC ../../../intern/glew-mx ../../../intern/guardedalloc ../../../intern/smoke/extern + ../../../intern/gawain ) set(INC_SYS @@ -70,28 +71,6 @@ set(SRC intern/gpu_uniformbuffer.c intern/gpu_viewport.c - gawain/attrib_binding.c - gawain/attrib_binding.h - gawain/batch.c - gawain/batch.h - gawain/buffer_id.h - gawain/buffer_id.cpp - gawain/common.h - gawain/element.c - gawain/element.h - gawain/immediate.c - gawain/immediate.h - gawain/imm_util.c - gawain/imm_util.h - gawain/primitive.h - gawain/primitive.c - gawain/shader_interface.c - gawain/shader_interface.h - gawain/vertex_buffer.c - gawain/vertex_buffer.h - gawain/vertex_format.c - gawain/vertex_format.h - shaders/gpu_shader_fx_lib.glsl shaders/gpu_shader_fx_ssao_frag.glsl shaders/gpu_shader_fx_dof_frag.glsl diff --git a/source/blender/gpu/GPU_batch.h b/source/blender/gpu/GPU_batch.h index 6d63965952a..2232e333bb6 100644 --- a/source/blender/gpu/GPU_batch.h +++ b/source/blender/gpu/GPU_batch.h @@ -30,7 +30,11 @@ #pragma once -#include "gawain/batch.h" +#include "../../../intern/gawain/gawain/batch.h" + +// TODO: CMake magic to do this: +// #include "gawain/batch.h" + #include "GPU_shader.h" /* Extend Batch_set_program to use Blender’s library of built-in shader programs. */ diff --git a/source/blender/gpu/GPU_immediate.h b/source/blender/gpu/GPU_immediate.h index 4a0840e22c0..35964a81030 100644 --- a/source/blender/gpu/GPU_immediate.h +++ b/source/blender/gpu/GPU_immediate.h @@ -30,8 +30,13 @@ #pragma once -#include "gawain/immediate.h" -#include "gawain/imm_util.h" +#include "../../../intern/gawain/gawain/immediate.h" +#include "../../../intern/gawain/gawain/imm_util.h" + +// TODO: CMake magic to do this: +// #include "gawain/immediate.h" +// #include "gawain/imm_util.h" + #include "GPU_shader.h" /* Extend immBindProgram to use Blender’s library of built-in shader programs.