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

Commit c53254ec authored by Alex Sakhartchouk's avatar Alex Sakhartchouk Committed by Android (Google) Code Review
Browse files

Merge "Enable AA in scenegraph. Minor shader work in sample."

parents ae8945ab b23b58ad
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