Remove reference to WITH_GL_PROFILE_CORE

There is no more point of keep those around. ES20 may need special case
when/if we dabble with it again. Meanwhile no point on polluting the
code with this.

(ghost still has reference for the PROFILE, but that's reasonable)
This commit is contained in:
Dalai Felinto 2017-05-19 11:47:55 +02:00
parent bad8b91fd3
commit 60fc04fb9b
7 changed files with 10 additions and 174 deletions

View File

@ -18,13 +18,7 @@
#define AVG_VERTEX_ATTRIB_NAME_LEN 11
#define VERTEX_ATTRIB_NAMES_BUFFER_LEN ((AVG_VERTEX_ATTRIB_NAME_LEN + 1) * MAX_VERTEX_ATTRIBS)
#if defined(WITH_GL_PROFILE_CORE) || defined(_WIN32)
// (GLEW_VERSION_3_3 || GLEW_ARB_vertex_type_2_10_10_10_rev)
// ^-- this is only guaranteed on Windows right now, will be true on all platforms soon
#define USE_10_10_10 1
#else
#define USE_10_10_10 0
#endif
#define USE_10_10_10 1
typedef enum {
COMP_I8,

View File

@ -58,13 +58,10 @@
#include "GPU_buffers.h"
#include "GPU_draw.h"
#include "GPU_glew.h"
#include "GPU_immediate.h"
#include "GPU_shader.h"
#include "GPU_basic_shader.h"
#ifdef WITH_GL_PROFILE_CORE
# include "GPU_immediate.h"
#endif
#include <string.h>
#include <limits.h>
#include <math.h>
@ -376,7 +373,7 @@ static void cdDM_drawVerts(DerivedMesh *dm)
GPU_buffers_unbind();
}
static void cdDM_drawEdges(DerivedMesh *dm, bool drawLooseEdges, bool drawAllEdges)
static void cdDM_drawEdges(DerivedMesh *dm, bool UNUSED(drawLooseEdges), bool UNUSED(drawAllEdges))
{
CDDerivedMesh *cddm = (CDDerivedMesh *) dm;
@ -388,28 +385,6 @@ static void cdDM_drawEdges(DerivedMesh *dm, bool drawLooseEdges, bool drawAllEdg
return;
}
#ifndef WITH_GL_PROFILE_CORE
GPUDrawObject *gdo;
GPU_edge_setup(dm);
gdo = dm->drawObject;
if (gdo->edges && gdo->points) {
if (drawAllEdges && drawLooseEdges) {
GPU_buffer_draw_elements(gdo->edges, GL_LINES, 0, gdo->totedge * 2);
}
else if (drawAllEdges) {
GPU_buffer_draw_elements(gdo->edges, GL_LINES, 0, gdo->loose_edge_offset * 2);
}
else {
GPU_buffer_draw_elements(gdo->edges, GL_LINES, 0, gdo->tot_edge_drawn * 2);
GPU_buffer_draw_elements(gdo->edges, GL_LINES, gdo->loose_edge_offset * 2, dm->drawObject->tot_loose_edge_drawn * 2);
}
}
GPU_buffers_unbind();
#else
(void) drawLooseEdges;
(void) drawAllEdges;
MVert *vert = cddm->mvert;
MEdge *edge = cddm->medge;
@ -440,7 +415,6 @@ static void cdDM_drawEdges(DerivedMesh *dm, bool drawLooseEdges, bool drawAllEdg
}
immUnbindProgram();
#endif
}
static void cdDM_drawLooseEdges(DerivedMesh *dm)
@ -463,8 +437,9 @@ static void cdDM_drawLooseEdges(DerivedMesh *dm)
static void cdDM_drawFacesSolid(
DerivedMesh *dm,
float (*partial_redraw_planes)[4],
bool UNUSED(fast), DMSetMaterial setMaterial)
bool fast, DMSetMaterial setMaterial)
{
UNUSED_VARS(partial_redraw_planes, fast, setMaterial);
CDDerivedMesh *cddm = (CDDerivedMesh *) dm;
int a;
@ -478,21 +453,6 @@ static void cdDM_drawFacesSolid(
}
}
#ifndef WITH_GL_PROFILE_CORE
GPU_vertex_setup(dm);
GPU_normal_setup(dm);
GPU_triangle_setup(dm);
for (a = 0; a < dm->drawObject->totmaterial; a++) {
if (!setMaterial || setMaterial(dm->drawObject->materials[a].mat_nr + 1, NULL)) {
GPU_buffer_draw_elements(
dm->drawObject->triangles, GL_TRIANGLES,
dm->drawObject->materials[a].start, dm->drawObject->materials[a].totelements);
}
}
#else
(void) partial_redraw_planes;
(void) setMaterial;
const MVert *mvert = cddm->mvert;
const MLoop *mloop = cddm->mloop;
const MPoly *mpoly = cddm->mpoly;
@ -565,7 +525,6 @@ static void cdDM_drawFacesSolid(
}
immUnbindProgram();
#endif
}
static void cdDM_drawFacesTex_common(

View File

@ -43,11 +43,7 @@ extern "C" {
/* For now we support the legacy matrix stack in gpuGetMatrix functions.
* Will remove this after switching to core profile, which can happen after
* we convert all code to use the API in this file. */
#ifdef WITH_GL_PROFILE_CORE
# define SUPPORT_LEGACY_MATRIX 0
#else
# define SUPPORT_LEGACY_MATRIX 1
#endif
#define SUPPORT_LEGACY_MATRIX 0
void gpuMatrixReset(void); /* to Identity transform & empty stack */

View File

@ -307,113 +307,20 @@ void GPU_basic_shader_colors(
const float diffuse[3], const float specular[3],
int shininess, float alpha)
{
#ifdef WITH_GL_PROFILE_CORE
UNUSED_VARS(diffuse, specular, shininess, alpha);
return;
#endif
float gl_diffuse[4], gl_specular[4];
if (diffuse)
copy_v3_v3(gl_diffuse, diffuse);
else
zero_v3(gl_diffuse);
gl_diffuse[3] = alpha;
if (specular)
copy_v3_v3(gl_specular, specular);
else
zero_v3(gl_specular);
gl_specular[3] = 1.0f;
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, gl_diffuse);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, gl_specular);
glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, CLAMPIS(shininess, 1, 128));
}
void GPU_basic_shader_light_set(int light_num, GPULightData *light)
{
#ifdef WITH_GL_PROFILE_CORE
UNUSED_VARS(light_num, light);
return;
#endif
int light_bit = (1 << light_num);
/* note that light position is affected by the current modelview matrix! */
GPU_MATERIAL_STATE.lights_enabled &= ~light_bit;
GPU_MATERIAL_STATE.lights_directional &= ~light_bit;
if (light) {
float position[4], diffuse[4], specular[4];
glEnable(GL_LIGHT0 + light_num);
/* position */
if (light->type == GPU_LIGHT_SUN) {
copy_v3_v3(position, light->direction);
position[3] = 0.0f;
}
else {
copy_v3_v3(position, light->position);
position[3] = 1.0f;
}
glLightfv(GL_LIGHT0 + light_num, GL_POSITION, position);
/* energy */
copy_v3_v3(diffuse, light->diffuse);
copy_v3_v3(specular, light->specular);
diffuse[3] = 1.0f;
specular[3] = 1.0f;
glLightfv(GL_LIGHT0 + light_num, GL_DIFFUSE, diffuse);
glLightfv(GL_LIGHT0 + light_num, GL_SPECULAR, specular);
/* attenuation */
if (light->type == GPU_LIGHT_SUN) {
glLightf(GL_LIGHT0 + light_num, GL_CONSTANT_ATTENUATION, 1.0f);
glLightf(GL_LIGHT0 + light_num, GL_LINEAR_ATTENUATION, 0.0f);
glLightf(GL_LIGHT0 + light_num, GL_QUADRATIC_ATTENUATION, 0.0f);
}
else {
glLightf(GL_LIGHT0 + light_num, GL_CONSTANT_ATTENUATION, light->constant_attenuation);
glLightf(GL_LIGHT0 + light_num, GL_LINEAR_ATTENUATION, light->linear_attenuation);
glLightf(GL_LIGHT0 + light_num, GL_QUADRATIC_ATTENUATION, light->quadratic_attenuation);
}
/* spot */
glLightfv(GL_LIGHT0 + light_num, GL_SPOT_DIRECTION, light->direction);
if (light->type == GPU_LIGHT_SPOT) {
glLightf(GL_LIGHT0 + light_num, GL_SPOT_CUTOFF, light->spot_cutoff);
glLightf(GL_LIGHT0 + light_num, GL_SPOT_EXPONENT, light->spot_exponent);
}
else {
glLightf(GL_LIGHT0 + light_num, GL_SPOT_CUTOFF, 180.0f);
glLightf(GL_LIGHT0 + light_num, GL_SPOT_EXPONENT, 0.0f);
}
GPU_MATERIAL_STATE.lights_enabled |= light_bit;
if (position[3] == 0.0f)
GPU_MATERIAL_STATE.lights_directional |= light_bit;
}
else {
/* TODO(sergey): Needs revisit. */
/* glsl shader needs these zero to skip them */
const float zero[4] = {0.0f, 0.0f, 0.0f, 0.0f};
glLightfv(GL_LIGHT0 + light_num, GL_POSITION, zero);
glLightfv(GL_LIGHT0 + light_num, GL_DIFFUSE, zero);
glLightfv(GL_LIGHT0 + light_num, GL_SPECULAR, zero);
glDisable(GL_LIGHT0 + light_num);
}
}
void GPU_basic_shader_light_set_viewer(bool local)
{
#ifdef WITH_GL_PROFILE_CORE
UNUSED_VARS(local);
return;
#endif
glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, (local) ? GL_TRUE: GL_FALSE);
}
void GPU_basic_shader_stipple(GPUBasicShaderStipple stipple_id)

View File

@ -2271,13 +2271,6 @@ void GPU_state_init(void)
GPU_disable_program_point_size();
#ifndef WITH_GL_PROFILE_CORE
/* TODO: remove this when we switch to core profile */
{
glEnable(GL_POINT_SPRITE);
}
#endif
glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS);
glDepthFunc(GL_LEQUAL);

View File

@ -137,17 +137,7 @@ void gpu_extensions_init(void)
* final 2.8 release will be unified on OpenGL 3.3 core profile, no required extensions
* see developer.blender.org/T49012 for details
*/
#if defined(WITH_GL_PROFILE_CORE) || defined(_WIN32)
BLI_assert(GLEW_VERSION_3_3);
#elif defined(__APPLE__)
BLI_assert(GLEW_VERSION_2_1 && GLEW_EXT_gpu_shader4
&& GLEW_ARB_framebuffer_object
&& GLEW_ARB_draw_elements_base_vertex
&& GLEW_APPLE_flush_buffer_range);
#else
BLI_assert(GLEW_VERSION_3_3 || (GLEW_VERSION_3_0 && GLEW_ARB_draw_elements_base_vertex));
/* vendor driver || Mesa compatibility profile */
#endif
glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &GG.maxtextures);

View File

@ -148,16 +148,13 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
result = subsurf_make_derived_from_derived(derivedData, smd, NULL, subsurf_flags);
result->cd_flag = derivedData->cd_flag;
#ifndef WITH_GL_PROFILE_CORE
if (do_cddm_convert)
#endif
{
DerivedMesh *cddm = CDDM_copy(result);
result->release(result);
result = cddm;
}
#if defined(WITH_GL_PROFILE_CORE) && !defined(WITH_OPESUBDIV)
#ifndef WITH_OPESUBDIV
(void) do_cddm_convert;
#endif