move shader sources into asset files
This commit is contained in:
parent
0c45755ea1
commit
63a9a5cd4b
7
assets/shaders/fragment.glsl
Normal file
7
assets/shaders/fragment.glsl
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
varying vec3 color_i;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = vec4(color_i, 1);
|
||||
}
|
10
assets/shaders/vertex.glsl
Normal file
10
assets/shaders/vertex.glsl
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
attribute vec3 pos;
|
||||
attribute vec3 color;
|
||||
varying vec3 color_i;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(pos * 0.75, 1);
|
||||
color_i = color;
|
||||
}
|
@ -3,6 +3,7 @@ package com.homelinux.holtrop.opengltest;
|
||||
import android.opengl.GLSurfaceView;
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.content.res.AssetManager;
|
||||
|
||||
public class MainOpenGL extends Activity
|
||||
{
|
||||
@ -14,7 +15,7 @@ public class MainOpenGL extends Activity
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mGLView = new MyGLSurfaceView(this);
|
||||
mGLView = new MyGLSurfaceView(this, getAssets());
|
||||
setContentView(mGLView);
|
||||
}
|
||||
}
|
||||
|
@ -2,16 +2,17 @@ package com.homelinux.holtrop.opengltest;
|
||||
|
||||
import android.opengl.GLSurfaceView;
|
||||
import android.content.Context;
|
||||
import android.content.res.AssetManager;
|
||||
|
||||
public class MyGLSurfaceView extends GLSurfaceView
|
||||
{
|
||||
public MyGLSurfaceView(Context context)
|
||||
public MyGLSurfaceView(Context context, AssetManager am)
|
||||
{
|
||||
super(context);
|
||||
|
||||
setEGLContextClientVersion(2);
|
||||
|
||||
setRenderer(new MyRenderer());
|
||||
setRenderer(new MyRenderer(am));
|
||||
|
||||
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
|
||||
}
|
||||
|
@ -9,12 +9,23 @@ import java.nio.FloatBuffer;
|
||||
import java.nio.IntBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import android.util.Log;
|
||||
import android.content.res.AssetManager;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
|
||||
public class MyRenderer implements GLSurfaceView.Renderer
|
||||
{
|
||||
private int m_program;
|
||||
private final String DBGTAG = "JoshsOpenGL";
|
||||
private FloatBuffer m_quad_attrib_buffer;
|
||||
private AssetManager m_asset_manager;
|
||||
|
||||
public MyRenderer(AssetManager am)
|
||||
{
|
||||
m_asset_manager = am;
|
||||
}
|
||||
|
||||
public void checkGLError(String glOperation)
|
||||
{
|
||||
@ -25,6 +36,26 @@ public class MyRenderer implements GLSurfaceView.Renderer
|
||||
}
|
||||
}
|
||||
|
||||
private String read_asset(String fname)
|
||||
{
|
||||
String result = "";
|
||||
try
|
||||
{
|
||||
InputStream is = m_asset_manager.open(fname);
|
||||
InputStreamReader isr = new InputStreamReader(is);
|
||||
BufferedReader br = new BufferedReader(isr);
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
result += line + "\n";
|
||||
}
|
||||
}
|
||||
catch (IOException ioe)
|
||||
{
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private int load_shader(int type, String source)
|
||||
{
|
||||
int shader = GLES20.glCreateShader(type);
|
||||
@ -58,19 +89,8 @@ public class MyRenderer implements GLSurfaceView.Renderer
|
||||
m_quad_attrib_buffer.put(attribs);
|
||||
m_quad_attrib_buffer.position(0);
|
||||
|
||||
final String v_shader_src =
|
||||
"attribute vec3 pos;" +
|
||||
"attribute vec3 color;" +
|
||||
"varying vec3 color_i;" +
|
||||
"void main() {" +
|
||||
" gl_Position = vec4(pos / 2.0, 1);" +
|
||||
" color_i = color;" +
|
||||
"}";
|
||||
final String f_shader_src =
|
||||
"varying vec3 color_i;" +
|
||||
"void main() {" +
|
||||
" gl_FragColor = vec4(color_i, 1);" +
|
||||
"}";
|
||||
final String v_shader_src = read_asset("shaders/vertex.glsl");
|
||||
final String f_shader_src = read_asset("shaders/fragment.glsl");
|
||||
int v_shader = load_shader(GLES20.GL_VERTEX_SHADER, v_shader_src);
|
||||
int f_shader = load_shader(GLES20.GL_FRAGMENT_SHADER, f_shader_src);
|
||||
m_program = GLES20.glCreateProgram();
|
||||
|
Loading…
x
Reference in New Issue
Block a user