Exemplo n.º 1
0
/*
 * Class:     DoomGame
 * Method:    getState
 * Signature: ()LGameState;
 */
JNIEXPORT jobject JNICALL Java_vizdoom_DoomGame_getState
  (JNIEnv *env, jobject obj){
    DoomGame* game = GetObject(env,obj);
    jclass state = env->FindClass("vizdoom/GameState");
    int rozmiar=game->getScreenSize();
    std::vector<int> ourvector;
    GameState statec = game->getState();

    ourvector=statec.gameVariables;
    jintArray jbuffer = env->NewIntArray(ourvector.size());
    jint *oarr = env->GetIntArrayElements(jbuffer, NULL);

    for (int i=0;i<ourvector.size();i++){
        oarr[i]=ourvector[i];
    }
    env->ReleaseIntArrayElements(jbuffer, oarr, NULL);

    uint8_t *pointer;
    pointer=statec.imageBuffer;
    jintArray jbuffer2 = env->NewIntArray(rozmiar);
    oarr = env->GetIntArrayElements(jbuffer2, NULL);

    for (int i=0;i<rozmiar;i++){
        oarr[i]=(int)*(pointer+i);
    }
    env->ReleaseIntArrayElements(jbuffer2, oarr, NULL);

    jmethodID constructor = env->GetMethodID(state, "<init>", "(I[I[I)V");
    jobject result = env->NewObject(state, constructor, statec.number,jbuffer, jbuffer2);
    return result;
}
Exemplo n.º 2
0
/*
 * Class:     DoomGame
 * Method:    getScreenSize
 * Signature: ()I
 */
JNIEXPORT jint JNICALL Java_vizdoom_DoomGame_getScreenSize
  (JNIEnv *env, jobject obj){
    DoomGame* game = GetObject(env,obj);
    int ret;
    ret=game->getScreenSize();
    return (jint)ret;
}
Exemplo n.º 3
0
/*
 * Class:     DoomGame
 * Method:    getGameScreen
 * Signature: ()Ljava/util/ArrayList;
 */
JNIEXPORT jintArray JNICALL Java_vizdoom_DoomGame_getGameScreen
  (JNIEnv *env, jobject obj){
    DoomGame* game = GetObject(env,obj);
    int rozmiar=game->getScreenSize();
    std::vector<int> ourvector;

    uint8_t *pointer;
    pointer=game->getGameScreen();
    jintArray jbuffer = env->NewIntArray(rozmiar);
    jint *oarr;
    oarr = env->GetIntArrayElements(jbuffer, NULL);

    for (int i = 0; i < rozmiar; i++){
        oarr[i] = (int)*(pointer+i);
    }
    env->ReleaseIntArrayElements(jbuffer, oarr, NULL);
    return jbuffer;
}