From 8af543e1c83ee521a8af609c8d81c70ffbbf5897 Mon Sep 17 00:00:00 2001 From: Maxime Graulich <maxime.graulich@gmail.com> Date: Thu, 12 Sep 2013 12:52:02 +0000 Subject: [PATCH] mobile: add depth test + fix raize(Z) on Android --- .../src/org/geuz/onelab/MainActivity.java | 2 -- .../src/org/geuz/onelab/ModelList.java | 3 +- .../onelab/OptionsPostProcessingFragment.java | 7 ++--- contrib/mobile/androidGModel.cpp | 2 +- contrib/mobile/drawContext.cpp | 30 +++++++++++-------- contrib/mobile/drawContext.h | 2 +- 6 files changed, 23 insertions(+), 23 deletions(-) diff --git a/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java b/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java index 4ef8effb28..d6b9b0983d 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java @@ -10,7 +10,6 @@ import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.Notification; -import android.app.Notification.Builder; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; @@ -23,7 +22,6 @@ import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.Parcelable; -import android.app.FragmentTransaction; import android.view.Menu; import android.view.MenuItem; import android.view.Window; diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java b/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java index 5ea77bd411..4ebcf15199 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java @@ -127,8 +127,7 @@ public class ModelList extends Activity { Uri uri = data.getData(); String[] projection = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(uri, projection, null, null, null); - int column_index = cursor - .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); + int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); Intent intent = new Intent(ModelList.this, MainActivity.class); intent.putExtra("file", cursor.getString(column_index)); diff --git a/contrib/mobile/Android/src/org/geuz/onelab/OptionsPostProcessingFragment.java b/contrib/mobile/Android/src/org/geuz/onelab/OptionsPostProcessingFragment.java index 1b12d24dd3..68e83f9331 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/OptionsPostProcessingFragment.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/OptionsPostProcessingFragment.java @@ -57,12 +57,9 @@ public class OptionsPostProcessingFragment extends Fragment{ final SeekBar raiseZ = (SeekBar)layout.findViewById(R.id.raisez); raiseZ.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { - public void onStopTrackingTouch(SeekBar seekBar) {} // UNUSED Auto-generated method stub + public void onStopTrackingTouch(SeekBar seekBar) {_gmsh.setPView(_pview, -1, -1, -1, seekBar.getProgress());} public void onStartTrackingTouch(SeekBar seekBar) {} // UNUSED Auto-generated method stub - public void onProgressChanged(SeekBar seekBar, int progress, - boolean fromUser) { - _gmsh.setPView(_pview, -1, -1, -1, progress); - } + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } // UNUSED Auto-generated method stub }); raiseZ.setProgress(Integer.parseInt(infos[4])); intervalsType.setEnabled(infos[2].equals("1")); diff --git a/contrib/mobile/androidGModel.cpp b/contrib/mobile/androidGModel.cpp index 629258807c..22cdf6e3c9 100644 --- a/contrib/mobile/androidGModel.cpp +++ b/contrib/mobile/androidGModel.cpp @@ -294,7 +294,7 @@ JNIEXPORT void JNICALL Java_org_geuz_onelab_Gmsh_setPView if(intervalsType > 0 && intervalsType < 4) PView::list[pos]->getOptions()->intervalsType = intervalsType; if(visible >= 0) PView::list[pos]->getOptions()->visible = visible; if(nIntervals > 0) PView::list[pos]->getOptions()->nbIso = nIntervals; - if(raisez>0) PView::list[pos]->getOptions()->raise[2] = raisez; + if(raisez>=0) PView::list[pos]->getOptions()->raise[2] = raisez; PView::list[pos]->setChanged(true); } diff --git a/contrib/mobile/drawContext.cpp b/contrib/mobile/drawContext.cpp index 7727740e6d..5c453e38dd 100644 --- a/contrib/mobile/drawContext.cpp +++ b/contrib/mobile/drawContext.cpp @@ -216,10 +216,13 @@ void drawContext::initView(int w, int h) this->OrthofFromGModel(); glClearColor(.83,.85,.98,1.); + glDepthMask(GL_TRUE); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glDepthFunc(GL_LESS); } -void drawArray(VertexArray *va, GLint type, bool colorArray) +void drawArray(VertexArray *va, GLint type, bool useColorArray, bool useNormalArray) { if(!va) return; glEnable(GL_BLEND); @@ -227,14 +230,15 @@ void drawArray(VertexArray *va, GLint type, bool colorArray) glShadeModel(GL_SMOOTH); glVertexPointer(3, GL_FLOAT, 0, va->getVertexArray()); glEnableClientState(GL_VERTEX_ARRAY); - glNormalPointer(GL_BYTE, 0, va->getNormalArray()); - glEnableClientState(GL_NORMAL_ARRAY); - if(colorArray){ + if(useNormalArray){ + glNormalPointer(GL_BYTE, 0, va->getNormalArray()); + glEnableClientState(GL_NORMAL_ARRAY); + } + if(useColorArray){ glColorPointer(4, GL_UNSIGNED_BYTE, 0, va->getColorArray()); glEnableClientState(GL_COLOR_ARRAY); } glDrawArrays(type, 0, va->getNumVertices()); - glDisable(GL_POLYGON_OFFSET_FILL); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); glDisableClientState(GL_COLOR_ARRAY); @@ -346,9 +350,9 @@ void drawContext::drawPView(PView *p) glPointSize((GLfloat)opt->pointSize); glLineWidth((GLfloat)opt->lineWidth); - drawArray(p->va_points, GL_POINTS,true); - drawArray(p->va_lines, GL_LINES,true); - drawArray(p->va_triangles, GL_TRIANGLES,true); + drawArray(p->va_points, GL_POINTS, true); + drawArray(p->va_lines, GL_LINES, true); + drawArray(p->va_triangles, GL_TRIANGLES, true, true); glLineWidth(1); glPointSize(1); @@ -571,14 +575,16 @@ void drawContext::drawView() this->_bottom + (this->_top - this->_bottom)/15.0, 0, (this->_top - this->_bottom)/20.); checkGlError("Draw axes"); - this->drawPost(); - checkGlError("Draw post-pro"); - this->drawGeom(); - checkGlError("Draw geometry"); + glEnable(GL_DEPTH_TEST); this->drawMesh(); checkGlError("Draw mesh"); + this->drawGeom(); + checkGlError("Draw geometry"); + this->drawPost(); + checkGlError("Draw post-pro"); this->drawScale(); checkGlError("Draw scales"); + glDisable(GL_DEPTH_TEST); } std::vector<std::string> commandToVector(const std::string cmd) diff --git a/contrib/mobile/drawContext.h b/contrib/mobile/drawContext.h index 4ea981b43e..ef5fd71597 100644 --- a/contrib/mobile/drawContext.h +++ b/contrib/mobile/drawContext.h @@ -19,7 +19,7 @@ #include "movePosition.h" -void drawArray(VertexArray *va, int type, bool colorArray=false); +void drawArray(VertexArray *va, int type, bool useColorArray=false, bool useNormalArray=false); int onelab_cb(std::string); class drawContext{ -- GitLab