Installieren OpenGL ES und kompilieren von code für android

Ich habe gerade angefangen zu lernen, OpenGL ES unter android (mit dieses Buch) und stieß auf ein Problem der Annahme Quelle code aus Kapitel 5 zu den bestehenden Methoden der Verwendung von jni in android (eigentlich geht es hier auch um einfach läuft eine native app GL). Ich bin versucht zu kompilieren, die nativen code zu erhalten .so lib und verwenden es weiter .apk-Archiv. Aber die Zusammenstellung ist nicht möglich, wenn bestimmte libs nicht vorhanden sind (die GLES/gl.h, EGL/egl.h, GLES/gl.h, GLES/glext.h).

Also die Frage ist wie installiere ich diese libs (AFAIU, OpenGL ES und EGL-installation), und kompilieren Sie die meisten trivial native code? (tutorials sind sehr bewundert).

Vielen Dank im Voraus.

EDIT: ich habe versucht, die glbuffer Beispiel, wie vorgeschlagen wurde (leicht verändert .mk-Datei), aber immer noch kein Erfolg. Compiler gibt mir das gleiche Ergebnis wie vorher:

ndk-build

Kompilieren Daumen: egl <= cube.c

/Pfad/jni/cube.c:5:21: Fehler: GLES/gl.h: No such file or directory //gleiche Nachricht für glbuffer, wenn gl.h ist im Lieferumfang enthalten

Hier ist der Würfel.c-code:

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

#include <GLES/gl.h>

#define FIXED_ONE 0x10000
#define one 1.0f

typedef unsigned char byte;

extern void jni_printf(char *format, ...);

//Cube static 
GLfloat vertices[24] = {        -one, -one, -one,       one, -one,
-one,       one,  one, -one,        -one,  one, -one,       -one, -one,  one,       one, -one,  one,        one,  one,  one,        -one,  one,  one, };

static GLfloat colors[] = {         0,    0, 0,  one,       one,    0,    0,  one,      one,  one,    0,  one,      0,  one,    0> ,  one,      0,    0,  one,  one,        one, 0,  one,  one,         one,  one,  one,  one,      0,  one,  one,  one, };

static byte indices[] = {       0, 4, 5,   0, 5, 1,         1, 5, 6,    1, 6, 2,        2, 6, 7,    2, 7, 3,        3, 7, 4,    3, 4, 0,        4, 7, 6,    4, 6, 5,        3, 0, 1,   3, 1, 2 };


void Cube_draw() {
glFrontFace(GL_CW);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glColorPointer(4, GL_FLOAT, 0 , colors);
glDrawElements(GL_TRIANGLES, 36, GL_UNSIGNED_BYTE, indices); }

Es ist furchtbar trivial und nicht arbeiten, noch nicht.

Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_LDLIBS := -lGLESv1_CM.so
LOCAL_MODULE    := egl
LOCAL_SRC_FILES := cube.c cuberenderer.c

include $(BUILD_SHARED_LIBRARY)
  • Ich blätterte das Buch und es hat mich dann mit Native-code. Wenn ich gekommen, um zu versuchen, es, ich sah nur in einigen der Beispiel-Quelle, nahm eine Probe .mk-Datei umbenannt und ein paar Dinge, und ich war laufen. Ist das Buch lächerlich kompliziert für keinen Grund, oder haben Sie, Dinge zu tun, bevor eine neuere DDR-Veröffentlichung kam?
  • Es ist nicht kompliziert, es erfordert nur Doppel-revision. Außerdem ist es ein bisschen veraltet, so dass es sagen, eine Menge Sachen, die überflüssig für schnelles lernen, aber nützlich zu wissen. Beispiele funktionieren mit Veränderungen, aber wenn ich kam, um die GL, die ich einfach nicht kompilieren. Java-Teil funktioniert gut.
InformationsquelleAutor Denys S. | 2011-03-14
Schreibe einen Kommentar