Android opengl will net..

tomovic

Bekanntes Mitglied
hallo,
bin gerade dabei openlg für Android zu lernen.

mein Quellcode von tut.:
Java:
// GLRenderer.java
package cz.vilio.opengl13;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

import android.content.Context;
import android.opengl.GLES20;
import android.opengl.GLSurfaceView.Renderer;

public class GLRenderer implements Renderer {

	private Context context;
	private static final String U_COLOR = "u_Color";
	private int uColorLocation;
	private static final String A_POSITION = "a_Position";
	private int aPositionLocation;
	
	private static final int POSITION_COMPONENT_COUNT = 2;
	
	private int program;
	
	private final int BYTES_PER_FLOAT = 4;
	private FloatBuffer vertexData;
	
	public GLRenderer(Context context) {
		this.context = context;
		float[] rectangle = {
				-0.5f, 0.5f,
				 0.5f, 0.5f,
				-0.5f, 0.5f,
				
				 0.5f, 0.5f,
				 0.5f,-0.5f,
				-0.5f,-0.5f,
		};
		vertexData = ByteBuffer
				.allocateDirect(rectangle.length * BYTES_PER_FLOAT)
				.order(ByteOrder.nativeOrder())
				.asFloatBuffer();
		vertexData.put(rectangle);
		
	}
	
	



public void onSurfaceCreated(GL10 gl, EGLConfig config) {
	GLES20.glClearColor(0.4f, 0.2f, 0.2f, 1.0f);
	
	String vertexShaderSource = ShaderHelper.readerTextFile(context, R.raw.vertex_shader);
	String fragmentShaderSource = ShaderHelper.readerTextFile(context, R.raw.fragment_shader);
	
	int vertexShader = ShaderHelper.compileVertexShader(vertexShaderSource);
	int fragmentShader = ShaderHelper.compileFragmentShadeR(fragmentShaderSource);
	
	program = ShaderHelper.linkProgram(vertexShader, fragmentShader);
	GLES20.glUseProgram(program);
	
	uColorLocation = GLES20.glGetUniformLocation(program, U_COLOR);
	aPositionLocation = GLES20.glGetAttribLocation(program,A_POSITION);
	
	vertexData.position(0);
	
	GLES20.glVertexAttribPointer(aPositionLocation, POSITION_COMPONENT_COUNT, GLES20.GL_FLOAT, false, 0,vertexData);
	GLES20.glEnableVertexAttribArray(aPositionLocation);
	
	
	}
	

	
	public void onSurfaceChanged(GL10 gl, int width, int height) {
	
	GLES20.glViewport(0, 0, width, height);
		
	}

	
	
	
    public void onDrawFrame(GL10 gl) {
    	
     GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
     
     GLES20.glUniform4f(uColorLocation, 0.0f, 0.5f, 1.0f, 1.0f);
	 GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, 6);	
	}
	

}

die main.java
Java:
package cz.vilio.opengl13;

import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;



public class Main extends ActionBarActivity {

	
	GLSurfaceView surfaceView;
	

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		surfaceView = new GLSurfaceView(this);
		surfaceView.setEGLContextClientVersion(2);
		surfaceView.setRenderer(new GLRenderer(this));
		
		setContentView(surfaceView);
		

	}

}
ShaderHelper.java
Java:
package cz.vilio.opengl13;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import android.content.Context;
import android.opengl.GLES20;




public class ShaderHelper {
	
	public static int compileVertexShader(String shaderCode) {
		return compileShader(GLES20.GL_VERTEX_SHADER, shaderCode);
		
	}
	
	public static int compileFragmentShadeR(String shaderCode) {
		return compileShader(GLES20.GL_FRAGMENT_SHADER, shaderCode);
	}
	
	private static int compileShader(int type, String shaderCode) {
		final int shader = GLES20.glCreateShader(type);
		GLES20.glShaderSource(shader, shaderCode);
		GLES20.glCompileShader(shader);
		
		return shader;
		
	}
	
	public static int linkProgram(int vertexShaderID, int fragmentShaderID) {
		final int program = GLES20.glCreateProgram();
		
		GLES20.glAttachShader(program, vertexShaderID);
		GLES20.glAttachShader(program, fragmentShaderID);
		GLES20.glLinkProgram(program);
		
		return program;
        		
	}
	
	public static String readerTextFile(Context context, int resourceId) {
		StringBuilder body = new StringBuilder();
		
		try {
			InputStream inputStream = context.getResources().openRawResource(resourceId);
			InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
			BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
			
			String nextLine;
			
			while((nextLine = bufferedReader.readLine()) != null) {
				body.append(nextLine);
				body.append("\n");
			}
		} catch (Exception e) {
			
		}
		return body.toString();
		
			
			}
					
		
	}

fragment_shader.glsl
HTML:
precision mediump float;

uniform vec4 u_Color;

void main() {
	gl_FragColor = u_Color;
}

vertex_shadr.glsl
HTML:
attribute vec4 a_Postion;

void main() {
	gl_Position = a_Position;
	}

-----------------------
console:
HTML:
[2014-06-20 15:46:42 - OpenGL13] ------------------------------
[2014-06-20 15:46:42 - OpenGL13] Android Launch!
[2014-06-20 15:46:42 - OpenGL13] adb is running normally.
[2014-06-20 15:46:42 - OpenGL13] Performing cz.vilio.opengl13.Main activity launch
[2014-06-20 15:46:42 - OpenGL13] Automatic Target Mode: launching new emulator with compatible AVD 'test2'
[2014-06-20 15:46:42 - OpenGL13] Launching a new emulator with Virtual Device 'test2'
[2014-06-20 15:46:46 - Emulator] Failed to create Context 0x3005
[2014-06-20 15:46:46 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 15:46:46 - Emulator] emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
[2014-06-20 15:46:46 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 15:46:46 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 15:46:46 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 15:46:46 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 15:46:46 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 15:46:46 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 15:46:46 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 15:46:46 - Emulator] emulator: warning: opening audio input failed
[2014-06-20 15:46:46 - Emulator] 
[2014-06-20 15:46:46 - OpenGL13] New emulator found: emulator-5554
[2014-06-20 15:46:46 - OpenGL13] Waiting for HOME ('android.process.acore') to be launched...
[2014-06-20 15:47:42 - OpenGL13] HOME is up on device 'emulator-5554'
[2014-06-20 15:47:42 - OpenGL13] Uploading OpenGL13.apk onto device 'emulator-5554'
[2014-06-20 15:47:46 - OpenGL13] Installing OpenGL13.apk...
[2014-06-20 15:48:19 - OpenGL13] Success!
[2014-06-20 15:48:19 - OpenGL13] Starting activity cz.vilio.opengl13.Main on device emulator-5554
[2014-06-20 15:48:21 - OpenGL13] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=cz.vilio.opengl13/.Main }
[2014-06-20 15:48:52 - OpenGL13] ------------------------------
[2014-06-20 15:48:52 - OpenGL13] Android Launch!
[2014-06-20 15:48:52 - OpenGL13] adb is running normally.
[2014-06-20 15:48:52 - OpenGL13] Performing cz.vilio.opengl13.Main activity launch
[2014-06-20 15:48:52 - OpenGL13] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'test2'
[2014-06-20 15:48:54 - OpenGL13] Application already deployed. No need to reinstall.
[2014-06-20 15:48:54 - OpenGL13] Starting activity cz.vilio.opengl13.Main on device emulator-5554
[2014-06-20 15:48:56 - OpenGL13] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=cz.vilio.opengl13/.Main }
[2014-06-20 15:50:13 - OpenGL13] ------------------------------
[2014-06-20 15:50:13 - OpenGL13] Android Launch!
[2014-06-20 15:50:13 - OpenGL13] adb is running normally.
[2014-06-20 15:50:13 - OpenGL13] Performing cz.vilio.opengl13.Main activity launch
[2014-06-20 15:50:13 - OpenGL13] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'test2'
[2014-06-20 15:50:15 - OpenGL13] Application already deployed. No need to reinstall.
[2014-06-20 15:50:15 - OpenGL13] Starting activity cz.vilio.opengl13.Main on device emulator-5554
[2014-06-20 15:50:17 - OpenGL13] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=cz.vilio.opengl13/.Main }
[2014-06-20 16:03:18 - OpenGL13] ------------------------------
[2014-06-20 16:03:18 - OpenGL13] Android Launch!
[2014-06-20 16:03:18 - OpenGL13] adb is running normally.
[2014-06-20 16:03:18 - OpenGL13] Performing cz.vilio.opengl13.Main activity launch
[2014-06-20 16:03:18 - OpenGL13] Automatic Target Mode: launching new emulator with compatible AVD 'test2'
[2014-06-20 16:03:18 - OpenGL13] Launching a new emulator with Virtual Device 'test2'
[2014-06-20 16:03:19 - Emulator] Failed to create Context 0x3005
[2014-06-20 16:03:19 - Emulator] emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:20 - Emulator] emulator: warning: opening audio input failed
[2014-06-20 16:03:20 - Emulator] 
[2014-06-20 16:03:20 - OpenGL13] New emulator found: emulator-5554
[2014-06-20 16:03:20 - OpenGL13] Waiting for HOME ('android.process.acore') to be launched...
[2014-06-20 16:04:25 - OpenGL13] HOME is up on device 'emulator-5554'
[2014-06-20 16:04:25 - OpenGL13] Uploading OpenGL13.apk onto device 'emulator-5554'
[2014-06-20 16:04:31 - OpenGL13] Failed to install OpenGL13.apk on device 'emulator-5554': timeout
[2014-06-20 16:04:31 - OpenGL13] Launch canceled!


---------------------------
Ich bin genau nach Anleitung vorgegagen, das Einzigste, was komisch war:
laut tut soll ich folgendes verwenden:

String vertexShaderSource = ShaderHelper.readTextFile(context, R.raw.vertex_shader);

dann meinte Eclipse: Er kennt kein readTextFile, ich solle das lieber:

String vertexShaderSource = ShaderHelper.readerTextFile(context, R.raw.vertex_shader);

verwenden. Im Quellcode ist nichts rot oder gleb ?!
 

kaoZ

Top Contributor
Failed to install OpenGL13.apk on device 'emulator-5554': timeout
Was das wohl bedeuten mag .... ;)

wobei es weiter oben schonmal durchgelaufen sein muss

[2014-06-20 15:47:42 - OpenGL13] Uploading OpenGL13.apk onto device 'emulator-5554'
[2014-06-20 15:47:46 - OpenGL13] Installing OpenGL13.apk...
[2014-06-20 15:48:19 - OpenGL13] Success!

das hier ist auch noch interessant :

[2014-06-20 16:03:19 - Emulator] emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:19 - Emulator] could not get wglGetExtensionsStringARB
[2014-06-20 16:03:20 - Emulator] emulator: warning: opening audio input failed

Anscheinend wird der OpenGl Renderer nicht geladen und statt dessen der des ADT genutzt, dann kann er natürlich auch keine OpenGL Anwendung ausführen.

Was steht im LogCat oder kommst du garnicht so weit? vermutlich startet die Anwendung nicht richtig ?

erforderliche Packages alle vorhanden ? alles am rechten platz ?
 
Zuletzt bearbeitet:

tomovic

Bekanntes Mitglied
selbstverständlich habe ich nach den Fehlermeldungen gegoogelt. :)
Aber leider nichts gefunden, nur sowas wie schlechte Hardware ( ich habe einen Dualcode mit 3 GB Ram / Win 7).
An der Hardware kann es nicht liegen, wenn ich nur ein 4 Eck möchte simulieren möchte.

Über den Android SKD Manager habe ich alles mit 4.0.3 + 3.2.2 + Tools + Exrta installiert.
 

tomovic

Bekanntes Mitglied
....Nachtrag

vergressen wir einfach den EMU. :)
Ich habe jetzt mein Tablet 10.1" (total verstaubt) geholt (Android 4.0.3)

Die App wird jetzt dargestellt, aber ohne opengl 4 Eck.
HTML:
[2014-06-20 20:57:34 - OpenGL13] ------------------------------
[2014-06-20 20:57:34 - OpenGL13] Android Launch!
[2014-06-20 20:57:34 - OpenGL13] adb is running normally.
[2014-06-20 20:57:34 - OpenGL13] Performing cz.vilio.opengl13.Main activity launch
[2014-06-20 20:57:37 - OpenGL13] Uploading OpenGL13.apk onto device '11805009115'
[2014-06-20 20:57:38 - OpenGL13] Installing OpenGL13.apk...
[2014-06-20 20:57:41 - OpenGL13] Success!
[2014-06-20 20:57:41 - OpenGL13] Starting activity cz.vilio.opengl13.Main on device 11805009115
[2014-06-20 20:57:42 - OpenGL13] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=cz.vilio.opengl13/.Main }
private static int compileShader(int type, String shaderCode) { //<--- merker merker
final int shader = GLES20.glCreateShader(type);
GLES20.glShaderSource(shader, shaderCode);
GLES20.glCompileShader(shader);

return shader;
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Naxon89 Threads Android AysncTask => Überprüfen, ob ein Ergebniss schon vorliegt Java Basics - Anfänger-Themen 5
Bene247 Android App (Trinkspiel) Java Basics - Anfänger-Themen 1
N Android Studio notwendig oder sinnvoll? Java Basics - Anfänger-Themen 7
S Gibt es irgendeine Möglichkeit, dies zu tun?(Android Studio) Java Basics - Anfänger-Themen 1
I Java Anwendung auf Android portieren Java Basics - Anfänger-Themen 1
S Android Service ferngesteuert starten Java Basics - Anfänger-Themen 5
A Alternativen zu Android Studio ??? Java Basics - Anfänger-Themen 14
L Android Activity Java Basics - Anfänger-Themen 10
A Wie gebe ich bei android eine string im programm aus? Java Basics - Anfänger-Themen 4
F JAVA oder Android Studios Java Basics - Anfänger-Themen 3
J Datentypen Komm in einem Android Buch mit Java nicht weiter... Java Basics - Anfänger-Themen 7
L Problem mit Android ListView Java Basics - Anfänger-Themen 2
W Pfeiltasten im Android Studio Java Basics - Anfänger-Themen 1
A Erste Schritte Zu Android exportieren Java Basics - Anfänger-Themen 6
M Spracherkennung in Android Java Basics - Anfänger-Themen 3
S Wie entwickelt man eine Library die auf dem JRE und Android laeuft..? Java Basics - Anfänger-Themen 0
A Android-Lib: Sourcecode Generator mittels Annotation Processing Java Basics - Anfänger-Themen 0
A Random String in TextView (Android)? Java Basics - Anfänger-Themen 2
T Android Display in 4 teilen... Java Basics - Anfänger-Themen 3
T Android App: Laden dauert lange Java Basics - Anfänger-Themen 1
T IllegalStateExeption Android App Java Basics - Anfänger-Themen 19
M Variablen Zähler funktioniert nicht - Android App Java Basics - Anfänger-Themen 3
A Suche Programmierer für Android App Java Basics - Anfänger-Themen 1
K Android vs Java+libgdx Java Basics - Anfänger-Themen 1
K Android 2d engine mit fortlaufendem hintergrund Java Basics - Anfänger-Themen 1
G Android App Java Basics - Anfänger-Themen 3
kaoZ Input/Output Typprüfung (Android ) Java Basics - Anfänger-Themen 1
kaoZ Input/Output Android : Deserialisieren von mehreren Objekten in einer Datei Java Basics - Anfänger-Themen 0
K Erste Schritte Android Recources (MyFirstApp) Java Basics - Anfänger-Themen 4
B Variablen Android: Spinner-Eintrag einen versteckten numerischen Wert zuordnen und Variable übergeben Java Basics - Anfänger-Themen 3
kaoZ Alternative zu ToggleButton (Android/Java) Java Basics - Anfänger-Themen 12
kaoZ Android Programmierung / Erstellen einer neuen Instanz Java Basics - Anfänger-Themen 2
C Android APP - Load More Button und beschleunigung... Java Basics - Anfänger-Themen 2
M javamail android app Java Basics - Anfänger-Themen 3
M Wie lernt man Android Java Basics - Anfänger-Themen 22
J Android R.Java verändern!? Java Basics - Anfänger-Themen 6
J Android app Satzteile Java Basics - Anfänger-Themen 3
S Android fuer Swing-Kenner..? Java Basics - Anfänger-Themen 6
A Android Datenbank gaaanz einfaches Insert geht nicht - warum? Java Basics - Anfänger-Themen 4
A BufferedImage in Android einbinden - Bild spiegeln -wie? Java Basics - Anfänger-Themen 4
eLogic Android - Fehler "stopped unexpectedly" Java Basics - Anfänger-Themen 7
E Android: OnClickListener erkennt Buttons nicht Java Basics - Anfänger-Themen 7
E Buttons in Android generieren? Java Basics - Anfänger-Themen 4
E Welcher Package Name bei Eclipse/Android? Java Basics - Anfänger-Themen 2
T opengl Dreick in einen Würfel umwandeln Java Basics - Anfänger-Themen 0
T opengl... Java Basics - Anfänger-Themen 5
Y Hilfe: JOGL / OPENGL in Frame Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben