[Bf-blender-cvs] [ccd51bb] master: OpenSubdiv: Properly support active UV layer in textured view
Sergey Sharybin
noreply at git.blender.org
Fri Jul 22 14:56:35 CEST 2016
Commit: ccd51bb9224899b4b7d50170267d94d9b9f2567f
Author: Sergey Sharybin
Date: Fri Jul 22 14:50:21 2016 +0200
Branches: master
https://developer.blender.org/rBccd51bb9224899b4b7d50170267d94d9b9f2567f
OpenSubdiv: Properly support active UV layer in textured view
===================================================================
M intern/opensubdiv/opensubdiv_gpu_capi.cc
M source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
diff --git a/intern/opensubdiv/opensubdiv_gpu_capi.cc b/intern/opensubdiv/opensubdiv_gpu_capi.cc
index a7c42ae..16a86f6 100644
--- a/intern/opensubdiv/opensubdiv_gpu_capi.cc
+++ b/intern/opensubdiv/opensubdiv_gpu_capi.cc
@@ -439,7 +439,10 @@ void bindProgram(OpenSubdiv_GLMesh *gl_mesh, int program)
/* See notes below about why we use such values. */
/* TOO(sergey): Get proper value for FVar width. */
glUniform1i(glGetUniformLocation(program, "osd_fvar_count"), 2);
- if (gl_mesh->fvar_data->channel_offsets.size() > 0 && g_active_uv_index >= 0) {
+ if (gl_mesh->fvar_data != NULL &&
+ gl_mesh->fvar_data->channel_offsets.size() > 0 &&
+ g_active_uv_index >= 0)
+ {
glUniform1i(glGetUniformLocation(program, "osd_active_uv_offset"),
gl_mesh->fvar_data->channel_offsets[g_active_uv_index]);
} else {
@@ -624,7 +627,10 @@ static GLuint prepare_patchDraw(OpenSubdiv_GLMesh *gl_mesh,
location = glGetUniformLocation(program, "osd_active_uv_offset");
if (location != -1) {
- if (gl_mesh->fvar_data->channel_offsets.size() > 0 && g_active_uv_index >= 0) {
+ if (gl_mesh->fvar_data != NULL &&
+ gl_mesh->fvar_data->channel_offsets.size() > 0 &&
+ g_active_uv_index >= 0)
+ {
glUniform1i(location,
gl_mesh->fvar_data->channel_offsets[g_active_uv_index]);
} else {
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index c6e20b9..7239566 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -3401,7 +3401,8 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm,
#ifdef WITH_OPENSUBDIV
if (ccgdm->useGpuBackend) {
- if (UNLIKELY(ccgSubSurf_prepareGLMesh(ss, true, -1) == false)) {
+ const int active_uv_layer = CustomData_get_active_layer_index(&dm->loopData, CD_MLOOPUV);
+ if (UNLIKELY(ccgSubSurf_prepareGLMesh(ss, true, active_uv_layer) == false)) {
return;
}
if (drawParams == NULL) {
More information about the Bf-blender-cvs
mailing list