Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b23b58ad authored by Alex Sakhartchouk's avatar Alex Sakhartchouk
Browse files

Enable AA in scenegraph. Minor shader work in sample.

Change-Id: Ifa81d2b19901002f901f25ac9dce5a4ca09fa363
parent f203b83d
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
varying vec3 varWorldPos;
varying vec3 varWorldNormal;
varying vec2 varTex0;

void main() {

   vec3 V = normalize(UNI_cameraPos.xyz - varWorldPos.xyz);
   vec3 worldNorm = normalize(varWorldNormal);

   vec3 light0Vec = normalize(UNI_lightPos_0.xyz - varWorldPos.xyz);
   float light0_Diffuse = clamp(dot(worldNorm, light0Vec), 0.0, 1.0);

   vec3 light1Vec = normalize(UNI_lightPos_1.xyz - varWorldPos.xyz);
   float light1_Diffuse = clamp(dot(worldNorm, light1Vec), 0.0, 1.0);

   vec2 t0 = varTex0.xy;
   lowp vec4 col = UNI_diffuse;
   col.xyz = col.xyz * (light0_Diffuse * UNI_lightColor_0.xyz +
                        light1_Diffuse * UNI_lightColor_1.xyz);
   gl_FragColor = col;
}
+5 −0
Original line number Diff line number Diff line
/*
    rs_matrix4x4 model;
    rs_matrix4x4 viewProj;
*/

varying vec3 varWorldPos;
varying vec3 varWorldNormal;
varying vec2 varTex0;
+1 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ public class SimpleAppView extends RSSurfaceView {
        if (mRS == null) {
            RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
            sc.setDepth(16, 24);
            sc.setSamples(1, 2, 1);
            mRS = createRenderScriptGL(sc);
            mRS.setSurface(holder, w, h);
            mRender = new SimpleAppRS();
+14 −1
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ public class TestAppRS {
    // Shaders
    private FragmentShader mPaintF;
    private FragmentShader mLightsF;
    private FragmentShader mLightsDiffF;
    private FragmentShader mAluminumF;
    private FragmentShader mPlasticF;
    private FragmentShader mDiffuseF;
@@ -173,6 +174,11 @@ public class TestAppRS {
        fb.setShader(mRes, R.raw.plastic_lights);
        mLightsF = fb.create();

        fb = new FragmentShader.Builder(mRS);
        fb.setObjectConst(lightParams.getAllocation().getType());
        fb.setShader(mRes, R.raw.diffuse_lights);
        mLightsDiffF = fb.create();

        FullscreenBlur.initShaders(mRes, mRS);
    }

@@ -203,6 +209,7 @@ public class TestAppRS {
    private void addShadersToScene() {
        mActiveScene.appendShader(mPaintF);
        mActiveScene.appendShader(mLightsF);
        mActiveScene.appendShader(mLightsDiffF);
        mActiveScene.appendShader(mAluminumF);
        mActiveScene.appendShader(mPlasticF);
        mActiveScene.appendShader(mDiffuseF);
@@ -219,8 +226,12 @@ public class TestAppRS {
        RenderState paint = new RenderState(mGenericV, mPaintF, null, null);
        RenderState aluminum = new RenderState(mGenericV, mAluminumF, null, null);
        RenderState lights = new RenderState(mGenericV, mLightsF, null, null);
        RenderState diff_lights = new RenderState(mGenericV, mLightsDiffF, null, null);
        RenderState diff_lights_no_cull = new RenderState(mGenericV, mLightsDiffF, null,
                                                          ProgramRaster.CULL_NONE(mRS));
        RenderState glassTransp = new RenderState(mGenericV, mPaintF,
                                                  ProgramStore.BLEND_ALPHA_DEPTH_TEST(mRS), null);
        RenderState texState = new RenderState(mGenericV, mTextureF, null, null);

        initRenderPasses();

@@ -239,10 +250,12 @@ public class TestAppRS {
        mActiveScene.assignRenderStateToMaterial(glassTransp, "^GlassLight");

        mActiveScene.assignRenderStateToMaterial(lights, "^LightBlinn");
        mActiveScene.assignRenderStateToMaterial(diff_lights, "^LightLambert");
        mActiveScene.assignRenderStateToMaterial(diff_lights_no_cull, "^LightLambertNoCull");
        mActiveScene.assignRenderStateToMaterial(texState, "^TextureOnly");

        Renderable plane = (Renderable)mActiveScene.getRenderableByName("pPlaneShape1");
        if (plane != null) {
            RenderState texState = new RenderState(mGenericV, mTextureF, null, null);
            plane.setRenderState(texState);
            plane.setVisible(!mUseBlur);
        }
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ public class TestAppView extends RSSurfaceView {
        if (mRS == null) {
            RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
            sc.setDepth(16, 24);
            sc.setSamples(1, 2, 1);
            mRS = createRenderScriptGL(sc);
            mRS.setSurface(holder, w, h);
            mRender = new TestAppRS();
Loading