/[gzz]/gzz/gfx/jni/GzzGL-jni.cxx
ViewVC logotype

Diff of /gzz/gfx/jni/GzzGL-jni.cxx

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.47 by humppake, Mon Oct 7 09:40:12 2002 UTC revision 1.48 by humppake, Mon Oct 7 14:23:11 2002 UTC
# Line 381  JNIEXPORT void JNICALL Java_gzz_gfx_gl_G Line 381  JNIEXPORT void JNICALL Java_gzz_gfx_gl_G
381    
382  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_GL_createImageImpl  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_GL_createImageImpl
383    (JNIEnv *env, jclass, jstring filename) {    (JNIEnv *env, jclass, jstring filename) {
384        const char *utf = env->GetStringUTFChars(filename, 0);        std::string utf = jstr2stdstr(env, filename);
385        Image *img = ws->loadImageFile(utf);        Image *img = ws->loadImageFile(utf.c_str());
       env->ReleaseStringUTFChars(filename, utf);  
386        return images.add(img);        return images.add(img);
387    }    }
388    
# Line 469  JNIEXPORT void JNICALL Java_gzz_gfx_gl_G Line 468  JNIEXPORT void JNICALL Java_gzz_gfx_gl_G
468  }  }
469    
470  GLenum tokenFromJstring(JNIEnv *env, jstring token) {  GLenum tokenFromJstring(JNIEnv *env, jstring token) {
471      const char *str = env->GetStringUTFChars(token, 0);      std::string str = jstr2stdstr(env, token);
472      GLenum ret = CallGL::getTokenValue(str);      GLenum ret = CallGL::getTokenValue(str.c_str());
     env->ReleaseStringUTFChars(token, str);  
473      return ret;      return ret;
474  }  }
475    
# Line 542  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_G Line 540  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_G
540        setWindow();        setWindow();
541        DBG(dbg)<<"Shade into "<<id<<"\n";        DBG(dbg)<<"Shade into "<<id<<"\n";
542    
543        const char *name_utf = env->GetStringUTFChars(name, 0);        std::string name_utf = jstr2stdstr(env, name);
544    
545        Texture::Texture *s = Texture::Texture::getTexture(name_utf);        Texture::Texture *s = Texture::Texture::getTexture(name_utf.c_str());
   
       env->ReleaseStringUTFChars(name, name_utf);  
546    
547        if(!s) {        if(!s) {
548            return 0;            return 0;
# Line 555  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_G Line 551  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_G
551        Texture::TextureParam p;        Texture::TextureParam p;
552    
553        for(int i=0; i<env->GetArrayLength(params)-1; i+=2) {        for(int i=0; i<env->GetArrayLength(params)-1; i+=2) {
554            const char *k = env->GetStringUTFChars((jstring)(env->GetObjectArrayElement(params, i)), 0);            std::string k = jstr2stdstr(env, (jstring)(env->GetObjectArrayElement(params, i)));
555            const char *v = env->GetStringUTFChars((jstring)(env->GetObjectArrayElement(params, i+1)), 0);            std::string v = jstr2stdstr(env, (jstring)(env->GetObjectArrayElement(params, i+1)));
556            p.setParam(k, v);            p.setParam(k.c_str(), v.c_str());
           env->ReleaseStringUTFChars((jstring)(env->GetObjectArrayElement(params, i)), k);  
           env->ReleaseStringUTFChars((jstring)(env->GetObjectArrayElement(params, i+1)), v);  
557        }        }
558    
559        float *value = new float[w * h * (d==0?1:d) * comp];        float *value = new float[w * h * (d==0?1:d) * comp];
# Line 638  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_G Line 632  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_G
632    (JNIEnv *env, jclass, jint id, jstring prog) {    (JNIEnv *env, jclass, jint id, jstring prog) {
633  #ifdef GL_VERTEX_PROGRAM_NV  #ifdef GL_VERTEX_PROGRAM_NV
634        setWindow();        setWindow();
635        const char *prog_utf = env->GetStringUTFChars(prog, 0);        std::string prog_utf = jstr2stdstr(env, prog);
636        glLoadProgramNV(GL_VERTEX_PROGRAM_NV, id,        glLoadProgramNV(GL_VERTEX_PROGRAM_NV, id,
637                  strlen(prog_utf), (const GLubyte *)prog_utf);                  strlen(prog_utf.c_str()), (const GLubyte *)prog_utf.c_str());
638        GLERR        GLERR
       env->ReleaseStringUTFChars(prog, prog_utf);  
639        releaseWindow();        releaseWindow();
640  #endif  #endif
641        return 1;        return 1;
# Line 655  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_G Line 648  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_G
648    (JNIEnv *env, jclass, jstring file, jint pt) {    (JNIEnv *env, jclass, jstring file, jint pt) {
649        DBG(dbg) << "creatFontImpl\n";        DBG(dbg) << "creatFontImpl\n";
650        setWindow();        setWindow();
651        const char *utf = env->GetStringUTFChars(file, 0);        std::string utf = jstr2stdstr(env, file);
652        Text::Font *gf0 = ws->loadFont(utf, pt);        Text::Font *gf0 = ws->loadFont(utf.c_str(), pt);
653        Text::Font *gf = new Text::Font_Bordered(        Text::Font *gf = new Text::Font_Bordered(
654                      gf0, 10);                      gf0, 10);
       env->ReleaseStringUTFChars(file, utf);  
655        RealFont *f = new RealFont(gf);        RealFont *f = new RealFont(gf);
656        releaseWindow();        releaseWindow();
657        return fonts.add(f);        return fonts.add(f);
# Line 733  JNIEXPORT void JNICALL Java_gzz_gfx_gl_G Line 725  JNIEXPORT void JNICALL Java_gzz_gfx_gl_G
725        DBG(dbg) << "Start callgl\n";        DBG(dbg) << "Start callgl\n";
726        setWindow();        setWindow();
727        DBG(dbg) << "set win\n";        DBG(dbg) << "set win\n";
728        const char *utf = env->GetStringUTFChars(s, 0);        std::string utf = jstr2stdstr(env, s);
729        DBG(dbg) << "got str\n";        DBG(dbg) << "got str\n";
730        CallGL::callGL(utf, l);        CallGL::callGL(utf.c_str(), l);
731        DBG(dbg) << "called\n";        DBG(dbg) << "called\n";
       env->ReleaseStringUTFChars(s, utf);  
       DBG(dbg) << "released str\n";  
732        releaseWindow();        releaseWindow();
733        DBG(dbg) << "released window\n";        DBG(dbg) << "released window\n";
734    }    }
# Line 1020  JNIEXPORT jfloat JNICALL Java_gzz_gfx_gl Line 1010  JNIEXPORT jfloat JNICALL Java_gzz_gfx_gl
1010    
1011  JNIEXPORT void JNICALL Java_gzz_gfx_gl_GL_setDebugVar  JNIEXPORT void JNICALL Java_gzz_gfx_gl_GL_setDebugVar
1012    (JNIEnv *env, jclass, jstring name, jint value) {    (JNIEnv *env, jclass, jstring name, jint value) {
1013        const char *utf = env->GetStringUTFChars(name, 0);        std::string utf = jstr2stdstr(env, name);
1014        Debug::var(utf) = value;        Debug::var(utf.c_str()) = value;
       env->ReleaseStringUTFChars(name, utf);  
1015  }  }
1016    
1017  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_GL_getDebugVar  JNIEXPORT jint JNICALL Java_gzz_gfx_gl_GL_getDebugVar
1018    (JNIEnv *env, jclass, jstring name) {    (JNIEnv *env, jclass, jstring name) {
1019        const char *utf = env->GetStringUTFChars(name, 0);        std::string utf = jstr2stdstr(env, name);
1020        int value = Debug::var(utf) ;        int value = Debug::var(utf.c_str()) ;
       env->ReleaseStringUTFChars(name, utf);  
1021        return value;        return value;
1022  }  }
1023    
# Line 1048  JNIEXPORT jobjectArray Java_gzz_gfx_gl_G Line 1036  JNIEXPORT jobjectArray Java_gzz_gfx_gl_G
1036    
1037  JNIEXPORT jstring JNICALL Java_gzz_gfx_gl_GL_getGLString  JNIEXPORT jstring JNICALL Java_gzz_gfx_gl_GL_getGLString
1038    (JNIEnv *env, jclass, jstring name) {    (JNIEnv *env, jclass, jstring name) {
1039        const char *utf = env->GetStringUTFChars(name, 0);        std::string utf = jstr2stdstr(env, name);
1040        const char *value = CallGL::getString(utf) ;        const char *value = CallGL::getString(utf.c_str()) ;
       env->ReleaseStringUTFChars(name, utf);  
1041        return env->NewStringUTF(value);        return env->NewStringUTF(value);
1042  }  }
1043    
1044  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLFloat  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLFloat
1045    (JNIEnv *env, jclass, jstring name) {    (JNIEnv *env, jclass, jstring name) {
1046        const char *utf = env->GetStringUTFChars(name, 0);        std::string utf = jstr2stdstr(env, name);
1047        vector<float> vec = CallGL::getFloat(utf) ;        vector<float> vec = CallGL::getFloat(utf.c_str()) ;
       env->ReleaseStringUTFChars(name, utf);  
1048        jfloatArray result = env->NewFloatArray(vec.size());        jfloatArray result = env->NewFloatArray(vec.size());
1049        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);
1050        return result;        return result;
# Line 1066  JNIEXPORT jfloatArray JNICALL Java_gzz_g Line 1052  JNIEXPORT jfloatArray JNICALL Java_gzz_g
1052    
1053  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLTexParameterFloat  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLTexParameterFloat
1054    (JNIEnv *env, jclass, jstring target, jint tex, jstring name) {    (JNIEnv *env, jclass, jstring target, jint tex, jstring name) {
1055        const char *utf_target = env->GetStringUTFChars(target, 0);        std::string utf_target = jstr2stdstr(env, target);
1056        const char *utf = env->GetStringUTFChars(name, 0);        std::string utf = jstr2stdstr(env, name);
1057        vector<float> vec = CallGL::getTexParameterFloat(utf_target, tex, utf) ;        vector<float> vec = CallGL::getTexParameterFloat(utf_target.c_str(), tex, utf.c_str());
       env->ReleaseStringUTFChars(name, utf);  
       env->ReleaseStringUTFChars(target, utf_target);  
1058        jfloatArray result = env->NewFloatArray(vec.size());        jfloatArray result = env->NewFloatArray(vec.size());
1059        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);
1060        return result;        return result;
# Line 1078  JNIEXPORT jfloatArray JNICALL Java_gzz_g Line 1062  JNIEXPORT jfloatArray JNICALL Java_gzz_g
1062    
1063  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLTexLevelParameterFloat  JNIEXPORT jfloatArray JNICALL Java_gzz_gfx_gl_GL_getGLTexLevelParameterFloat
1064    (JNIEnv *env, jclass, jstring target, jint tex, jint level, jstring name) {    (JNIEnv *env, jclass, jstring target, jint tex, jint level, jstring name) {
1065        const char *utf_target = env->GetStringUTFChars(target, 0);        std::string utf_target = jstr2stdstr(env, target);
1066        const char *utf = env->GetStringUTFChars(name, 0);        std::string utf = jstr2stdstr(env, name);
1067        vector<float> vec = CallGL::getTexLevelParameterFloat(utf_target, tex, level, utf) ;        vector<float> vec = CallGL::getTexLevelParameterFloat(utf_target.c_str(), tex, level, utf.c_str()) ;
       env->ReleaseStringUTFChars(name, utf);  
       env->ReleaseStringUTFChars(target, utf_target);  
1068        jfloatArray result = env->NewFloatArray(vec.size());        jfloatArray result = env->NewFloatArray(vec.size());
1069        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);        env->SetFloatArrayRegion(result, 0, vec.size(), &vec[0]);
1070        return result;        return result;

Legend:
Removed from v.1.47  
changed lines
  Added in v.1.48

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26