mirror of
https://github.com/PixarAnimationStudios/OpenSubdiv
synced 2024-09-19 22:30:05 +00:00
Merge pull request #596 from takahito-tejima/examples
Examples fixes: clew crash, unsupported GPU evals, MDI
This commit is contained in:
commit
f2d5ed8919
@ -869,10 +869,19 @@ display() {
|
||||
g_hud.DrawString(10, -20, "FPS : %3.1f", fps);
|
||||
|
||||
if (g_drawMode==kFACEVARYING) {
|
||||
static char msg[] = "Face-varying interpolation not implemented yet";
|
||||
g_hud.DrawString(g_width/2-20/2*8, g_height/2, msg);
|
||||
static char msg[] =
|
||||
"ERROR: Face-varying interpolation hasn't been supported yet.";
|
||||
g_hud.DrawString(g_width/4, g_height/4, 1, 0, 0, msg);
|
||||
}
|
||||
|
||||
if (g_endCap != kEndCapBSplineBasis &&
|
||||
(g_kernel != kCPU && g_kernel != kOPENMP && g_kernel != kTBB)) {
|
||||
static char msg[] =
|
||||
"ERROR: This kernel only supports BSpline basis patches.";
|
||||
g_hud.DrawString(g_width/4, g_height/4+20, 1, 0, 0, msg);
|
||||
}
|
||||
|
||||
|
||||
g_hud.Flush();
|
||||
}
|
||||
|
||||
@ -1124,7 +1133,9 @@ initHUD() {
|
||||
g_hud.AddPullDownButton(compute_pulldown, "CUDA", kCUDA);
|
||||
#endif
|
||||
#ifdef OPENSUBDIV_HAS_OPENCL
|
||||
g_hud.AddPullDownButton(compute_pulldown, "OpenCL", kCL);
|
||||
if (CLDeviceContext::HAS_CL_VERSION_1_1()) {
|
||||
g_hud.AddPullDownButton(compute_pulldown, "OpenCL", kCL);
|
||||
}
|
||||
#endif
|
||||
#ifdef OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK
|
||||
g_hud.AddPullDownButton(compute_pulldown, "GL XFB", kGLXFB);
|
||||
|
@ -652,7 +652,7 @@ int main(int argc, char ** argv) {
|
||||
|
||||
// prep GPU kernel
|
||||
#ifdef OPENSUBDIV_HAS_OPENCL
|
||||
if (kernel == "CL") {
|
||||
if (kernel == "CL" && CLDeviceContext::HAS_CL_VERSION_1_1()) {
|
||||
if (g_clDeviceContext.IsInitialized() == false) {
|
||||
if (g_clDeviceContext.Initialize() == false) {
|
||||
std::cout << "Error in initializing OpenCL\n";
|
||||
|
@ -682,6 +682,8 @@ display() {
|
||||
updateUniformBlocks();
|
||||
bindTextures();
|
||||
|
||||
//#define ENABLE_MDI
|
||||
#if defined(ENABLE_MDI) && defined(GL_ARB_multi_draw_indirect)
|
||||
if (g_MDI && glMultiDrawElementsIndirect) {
|
||||
SceneBase::BatchVector const &batches = g_scene->GetBatches();
|
||||
for (int i = 0; i < (int)batches.size(); ++i) {
|
||||
@ -698,6 +700,9 @@ display() {
|
||||
}
|
||||
glBindBuffer(GL_DRAW_INDIRECT_BUFFER, 0);
|
||||
} else {
|
||||
#else
|
||||
{
|
||||
#endif
|
||||
int numObjects = g_scene->GetNumObjects();
|
||||
for (int i = 0; i < numObjects; ++i) {
|
||||
SceneBase::PatchArrayVector const &patchArrays = g_scene->GetPatchArrays(i);
|
||||
@ -1093,8 +1098,10 @@ initHUD() {
|
||||
-200, 20, 20, true, callbackSlider, 0);
|
||||
|
||||
{
|
||||
#if defined(ENABLE_MDI) && defined(GL_ARB_multi_draw_indirect)
|
||||
g_hud.AddCheckBox("Multi Draw Indirect (m)", g_MDI != 0,
|
||||
10, 170, callbackCheckBox, kHUD_CB_MDI, 'm');
|
||||
#endif
|
||||
g_hud.AddCheckBox("Adaptive (`)", g_options.adaptive != 0,
|
||||
10, 190, callbackCheckBox, kHUD_CB_ADAPTIVE, '`');
|
||||
|
||||
|
@ -960,7 +960,9 @@ initHUD() {
|
||||
g_hud.AddPullDownButton(compute_pulldown, "CUDA", kCUDA);
|
||||
#endif
|
||||
#ifdef OPENSUBDIV_HAS_OPENCL
|
||||
g_hud.AddPullDownButton(compute_pulldown, "OpenCL", kCL);
|
||||
if (CLDeviceContext::HAS_CL_VERSION_1_1()) {
|
||||
g_hud.AddPullDownButton(compute_pulldown, "OpenCL", kCL);
|
||||
}
|
||||
#endif
|
||||
#ifdef OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK
|
||||
g_hud.AddPullDownButton(compute_pulldown, "GL XFB", kGLXFB);
|
||||
|
Loading…
Reference in New Issue
Block a user