gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz/gfx jni/GzzGL-jni.cxx librenderables/render...


From: Asko Soukka
Subject: [Gzz-commits] gzz/gfx jni/GzzGL-jni.cxx librenderables/render...
Date: Mon, 07 Oct 2002 10:23:11 -0400

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Asko Soukka <address@hidden>    02/10/07 10:23:11

Modified files:
        gfx/jni        : GzzGL-jni.cxx 
        gfx/librenderables: renderables.py 

Log message:
        Fixed JNI-code to use std::string conversions. Everything still worked 
at least on me. Benja: please, test for the 'null-string-bug'.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/jni/GzzGL-jni.cxx.diff?tr1=1.47&tr2=1.48&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/librenderables/renderables.py.diff?tr1=1.101&tr2=1.102&r1=text&r2=text

Patches:
Index: gzz/gfx/jni/GzzGL-jni.cxx
diff -c gzz/gfx/jni/GzzGL-jni.cxx:1.47 gzz/gfx/jni/GzzGL-jni.cxx:1.48
*** gzz/gfx/jni/GzzGL-jni.cxx:1.47      Mon Oct  7 05:40:12 2002
--- gzz/gfx/jni/GzzGL-jni.cxx   Mon Oct  7 10:23:11 2002
***************
*** 381,389 ****
  
  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_GL_createImageImpl
    (JNIEnv *env, jclass, jstring filename) {
!       const char *utf = env->GetStringUTFChars(filename, 0);
!       Image *img = ws->loadImageFile(utf);
!       env->ReleaseStringUTFChars(filename, utf);
        return images.add(img);
    }
  
--- 381,388 ----
  
  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_GL_createImageImpl
    (JNIEnv *env, jclass, jstring filename) {
!       std::string utf = jstr2stdstr(env, filename);
!       Image *img = ws->loadImageFile(utf.c_str());
        return images.add(img);
    }
  
***************
*** 469,477 ****
  }
  
  GLenum tokenFromJstring(JNIEnv *env, jstring token) {
!     const char *str = env->GetStringUTFChars(token, 0);
!     GLenum ret = CallGL::getTokenValue(str);
!     env->ReleaseStringUTFChars(token, str);
      return ret;
  }
  
--- 468,475 ----
  }
  
  GLenum tokenFromJstring(JNIEnv *env, jstring token) {
!     std::string str = jstr2stdstr(env, token);
!     GLenum ret = CallGL::getTokenValue(str.c_str());
      return ret;
  }
  
***************
*** 542,552 ****
        setWindow();
        DBG(dbg)<<"Shade into "<<id<<"\n";
  
!       const char *name_utf = env->GetStringUTFChars(name, 0);
  
!       Texture::Texture *s = Texture::Texture::getTexture(name_utf);
! 
!       env->ReleaseStringUTFChars(name, name_utf);
  
        if(!s) {
          return 0;
--- 540,548 ----
        setWindow();
        DBG(dbg)<<"Shade into "<<id<<"\n";
  
!       std::string name_utf = jstr2stdstr(env, name);
  
!       Texture::Texture *s = Texture::Texture::getTexture(name_utf.c_str());
  
        if(!s) {
          return 0;
***************
*** 555,565 ****
        Texture::TextureParam p;
  
        for(int i=0; i<env->GetArrayLength(params)-1; i+=2) {
!         const char *k = 
env->GetStringUTFChars((jstring)(env->GetObjectArrayElement(params, i)), 0);
!         const char *v = 
env->GetStringUTFChars((jstring)(env->GetObjectArrayElement(params, i+1)), 0);
!         p.setParam(k, v);
!         
env->ReleaseStringUTFChars((jstring)(env->GetObjectArrayElement(params, i)), k);
!         
env->ReleaseStringUTFChars((jstring)(env->GetObjectArrayElement(params, i+1)), 
v);
        }
  
        float *value = new float[w * h * (d==0?1:d) * comp];
--- 551,559 ----
        Texture::TextureParam p;
  
        for(int i=0; i<env->GetArrayLength(params)-1; i+=2) {
!         std::string k = jstr2stdstr(env, 
(jstring)(env->GetObjectArrayElement(params, i)));
!         std::string v = jstr2stdstr(env, 
(jstring)(env->GetObjectArrayElement(params, i+1)));
!         p.setParam(k.c_str(), v.c_str());
        }
  
        float *value = new float[w * h * (d==0?1:d) * comp];
***************
*** 638,648 ****
    (JNIEnv *env, jclass, jint id, jstring prog) {
  #ifdef GL_VERTEX_PROGRAM_NV
        setWindow();
!       const char *prog_utf = env->GetStringUTFChars(prog, 0);
        glLoadProgramNV(GL_VERTEX_PROGRAM_NV, id, 
!               strlen(prog_utf), (const GLubyte *)prog_utf);
        GLERR
-       env->ReleaseStringUTFChars(prog, prog_utf);
        releaseWindow();
  #endif
        return 1;
--- 632,641 ----
    (JNIEnv *env, jclass, jint id, jstring prog) {
  #ifdef GL_VERTEX_PROGRAM_NV
        setWindow();
!       std::string prog_utf = jstr2stdstr(env, prog);
        glLoadProgramNV(GL_VERTEX_PROGRAM_NV, id, 
!               strlen(prog_utf.c_str()), (const GLubyte *)prog_utf.c_str());
        GLERR
        releaseWindow();
  #endif
        return 1;
***************
*** 655,665 ****
    (JNIEnv *env, jclass, jstring file, jint pt) {
        DBG(dbg) << "creatFontImpl\n";
        setWindow();
!       const char *utf = env->GetStringUTFChars(file, 0);
!       Text::Font *gf0 = ws->loadFont(utf, pt);
        Text::Font *gf = new Text::Font_Bordered(
                    gf0, 10);
-       env->ReleaseStringUTFChars(file, utf);
        RealFont *f = new RealFont(gf);
        releaseWindow();
        return fonts.add(f);
--- 648,657 ----
    (JNIEnv *env, jclass, jstring file, jint pt) {
        DBG(dbg) << "creatFontImpl\n";
        setWindow();
!       std::string utf = jstr2stdstr(env, file);
!       Text::Font *gf0 = ws->loadFont(utf.c_str(), pt);
        Text::Font *gf = new Text::Font_Bordered(
                    gf0, 10);
        RealFont *f = new RealFont(gf);
        releaseWindow();
        return fonts.add(f);
***************
*** 733,744 ****
        DBG(dbg) << "Start callgl\n";
        setWindow();
        DBG(dbg) << "set win\n";
!       const char *utf = env->GetStringUTFChars(s, 0);
        DBG(dbg) << "got str\n";
!       CallGL::callGL(utf, l);
        DBG(dbg) << "called\n";
-       env->ReleaseStringUTFChars(s, utf);
-       DBG(dbg) << "released str\n";
        releaseWindow();
        DBG(dbg) << "released window\n";
    }
--- 725,734 ----
        DBG(dbg) << "Start callgl\n";
        setWindow();
        DBG(dbg) << "set win\n";
!       std::string utf = jstr2stdstr(env, s);
        DBG(dbg) << "got str\n";
!       CallGL::callGL(utf.c_str(), l);
        DBG(dbg) << "called\n";
        releaseWindow();
        DBG(dbg) << "released window\n";
    }
***************
*** 1020,1035 ****
  
  JNIEXPORT void JNICALL Java_gzz_gfx_gl_GL_setDebugVar
    (JNIEnv *env, jclass, jstring name, jint value) {
!       const char *utf = env->GetStringUTFChars(name, 0);
!       Debug::var(utf) = value;
!       env->ReleaseStringUTFChars(name, utf);
  }
  
  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_GL_getDebugVar
    (JNIEnv *env, jclass, jstring name) {
!       const char *utf = env->GetStringUTFChars(name, 0);
!       int value = Debug::var(utf) ;
!       env->ReleaseStringUTFChars(name, utf);
        return value;
  }
  
--- 1010,1023 ----
  
  JNIEXPORT void JNICALL Java_gzz_gfx_gl_GL_setDebugVar
    (JNIEnv *env, jclass, jstring name, jint value) {
!       std::string utf = jstr2stdstr(env, name);
!       Debug::var(utf.c_str()) = value;
  }
  
  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_GL_getDebugVar
    (JNIEnv *env, jclass, jstring name) {
!       std::string utf = jstr2stdstr(env, name);
!       int value = Debug::var(utf.c_str()) ;
        return value;
  }
  
***************
*** 1048,1064 ****
  
  JNIEXPORT jstring JNICALL Java_gzz_gfx_gl_GL_getGLString
    (JNIEnv *env, jclass, jstring name) {
!       const char *utf = env->GetStringUTFChars(name, 0);
!       const char *value = CallGL::getString(utf) ;
!       env->ReleaseStringUTFChars(name, utf);
        return env->NewStringUTF(value);
  }
  
  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLFloat
    (JNIEnv *env, jclass, jstring name) {
!       const char *utf = env->GetStringUTFChars(name, 0);
!       vector<float> vec = CallGL::getFloat(utf) ;
!       env->ReleaseStringUTFChars(name, utf);
        jfloatArray result = env->NewFloatArray(vec.size());
        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);
        return result;
--- 1036,1050 ----
  
  JNIEXPORT jstring JNICALL Java_gzz_gfx_gl_GL_getGLString
    (JNIEnv *env, jclass, jstring name) {
!       std::string utf = jstr2stdstr(env, name);
!       const char *value = CallGL::getString(utf.c_str()) ;
        return env->NewStringUTF(value);
  }
  
  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLFloat
    (JNIEnv *env, jclass, jstring name) {
!       std::string utf = jstr2stdstr(env, name);
!       vector<float> vec = CallGL::getFloat(utf.c_str()) ;
        jfloatArray result = env->NewFloatArray(vec.size());
        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);
        return result;
***************
*** 1066,1076 ****
  
  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLTexParameterFloat
    (JNIEnv *env, jclass, jstring target, jint tex, jstring name) {
!       const char *utf_target = env->GetStringUTFChars(target, 0);
!       const char *utf = env->GetStringUTFChars(name, 0);
!       vector<float> vec = CallGL::getTexParameterFloat(utf_target, tex, utf) ;
!       env->ReleaseStringUTFChars(name, utf);
!       env->ReleaseStringUTFChars(target, utf_target);
        jfloatArray result = env->NewFloatArray(vec.size());
        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);
        return result;
--- 1052,1060 ----
  
  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLTexParameterFloat
    (JNIEnv *env, jclass, jstring target, jint tex, jstring name) {
!       std::string utf_target = jstr2stdstr(env, target);
!       std::string utf = jstr2stdstr(env, name);
!       vector<float> vec = CallGL::getTexParameterFloat(utf_target.c_str(), 
tex, utf.c_str());
        jfloatArray result = env->NewFloatArray(vec.size());
        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);
        return result;
***************
*** 1078,1088 ****
  
  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLTexLevelParameterFloat
    (JNIEnv *env, jclass, jstring target, jint tex, jint level, jstring name) {
!       const char *utf_target = env->GetStringUTFChars(target, 0);
!       const char *utf = env->GetStringUTFChars(name, 0);
!       vector<float> vec = CallGL::getTexLevelParameterFloat(utf_target, tex, 
level, utf) ;
!       env->ReleaseStringUTFChars(name, utf);
!       env->ReleaseStringUTFChars(target, utf_target);
        jfloatArray result = env->NewFloatArray(vec.size());
        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);
        return result;
--- 1062,1070 ----
  
  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLTexLevelParameterFloat
    (JNIEnv *env, jclass, jstring target, jint tex, jint level, jstring name) {
!       std::string utf_target = jstr2stdstr(env, target);
!       std::string utf = jstr2stdstr(env, name);
!       vector<float> vec = 
CallGL::getTexLevelParameterFloat(utf_target.c_str(), tex, level, utf.c_str()) ;
        jfloatArray result = env->NewFloatArray(vec.size());
        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);
        return result;
Index: gzz/gfx/librenderables/renderables.py
diff -c gzz/gfx/librenderables/renderables.py:1.101 
gzz/gfx/librenderables/renderables.py:1.102
*** gzz/gfx/librenderables/renderables.py:1.101 Mon Oct  7 10:18:51 2002
--- gzz/gfx/librenderables/renderables.py       Mon Oct  7 10:23:11 2002
***************
*** 27,36 ****
      "String" : {
        "JNI" : "jstring",
        "CXX" : "unicodecharvector",
!       "pre" : (lambda v, p : "const jchar *jc_"+p\
!           +" = env->GetStringChars("+p \
!           +", 0); unicodecharvector "+v+"(jc_"+p+", jc_"+p+" + 
env->GetStringLength("+p+"));  \
!           env->ReleaseStringChars("+p+", jc_"+p+");\n"),
      },
      "Font" : {
        "JNI" : "jint",
--- 27,34 ----
      "String" : {
        "JNI" : "jstring",
        "CXX" : "unicodecharvector",
!       "pre" : (lambda v, p : "unicodecharvector "\
!                  +v+" = jstr2unistr(env, "+p+");\n"),
      },
      "Font" : {
        "JNI" : "jint",




reply via email to

[Prev in Thread] Current Thread [Next in Thread]