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

Commit 096b8d96 authored by Chris Craik's avatar Chris Craik
Browse files

Add shader program selection shortcut

Add a key manipulation that makes black text/paths use the standard
simple bitmap/patch shader, since they are the same. Previously we'd
create a separate shader for each because the keys differed, even
though the shaders were functionally equivalent.

Also fixes some issues around setting DEBUG_PROGRAM

Change-Id: I0c77c684d58da03501ee9ab8239c7d4a70fd6b5c
parent 29466f85
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@

#include <SkXfermode.h>

#include "Debug.h"
#include "Matrix.h"
#include "Properties.h"

+6 −0
Original line number Diff line number Diff line
@@ -433,6 +433,12 @@ void ProgramCache::clear() {

Program* ProgramCache::get(const ProgramDescription& description) {
    programid key = description.key();
    if (key == (PROGRAM_KEY_TEXTURE | PROGRAM_KEY_A8_TEXTURE)) {
        // program for A8, unmodulated, texture w/o shader (black text/path textures) is equivalent
        // to standard texture program (bitmaps, patches). Consider them equivalent.
        key = PROGRAM_KEY_TEXTURE;
    }

    ssize_t index = mCache.indexOfKey(key);
    Program* program = NULL;
    if (index < 0) {
+0 −11
Original line number Diff line number Diff line
@@ -30,17 +30,6 @@
namespace android {
namespace uirenderer {

///////////////////////////////////////////////////////////////////////////////
// Defines
///////////////////////////////////////////////////////////////////////////////

// Debug
#if DEBUG_PROGRAMS
    #define PROGRAM_LOGD(...) ALOGD(__VA_ARGS__)
#else
    #define PROGRAM_LOGD(...)
#endif

///////////////////////////////////////////////////////////////////////////////
// Cache
///////////////////////////////////////////////////////////////////////////////