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

Commit 4f20f9cf authored by Courtney Goeltzenleuchter's avatar Courtney Goeltzenleuchter
Browse files

ifdef HWC2 functionality

Fix build issue for devices that are not using HWC2.
Test: lunch hikey-userdebug; make

Change-Id: I47e9aa09b8db3f0dca6d733e2c8f3b59c45547b2
parent 3fdeae8b
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -113,10 +113,7 @@ DisplayDevice::DisplayDevice(
      mLayerStack(NO_LAYER_STACK),
      mOrientation(),
      mPowerMode(HWC_POWER_MODE_OFF),
      mActiveConfig(0),
#ifdef USE_HWC2
      mDisplayHasWideColor(supportWideColor)
#endif
      mActiveConfig(0)
{
    // clang-format on
    Surface* surface;
@@ -125,6 +122,9 @@ DisplayDevice::DisplayDevice(

#ifdef USE_HWC2
    mActiveColorMode = static_cast<android_color_mode_t>(-1);
    mDisplayHasWideColor = supportWideColor;
#else
    (void) supportWideColor;
#endif
    /*
     * Create our display's surface
+14 −2
Original line number Diff line number Diff line
@@ -45,9 +45,8 @@

#include <fstream>

static constexpr bool outputDebugPPMs = false;

// ---------------------------------------------------------------------------
#ifdef USE_HWC2
bool checkGlError(const char* op, int lineNumber) {
    bool errorFound = false;
    GLint error = glGetError();
@@ -59,6 +58,8 @@ bool checkGlError(const char* op, int lineNumber) {
    return errorFound;
}

static constexpr bool outputDebugPPMs = false;

void writePPM(const char* basename, GLuint width, GLuint height) {
    ALOGV("writePPM #%s: %d x %d", basename, width, height);

@@ -104,6 +105,7 @@ void writePPM(const char* basename, GLuint width, GLuint height) {
    }
    file.write(reinterpret_cast<char*>(outBuffer.data()), outBuffer.size());
}
#endif

// ---------------------------------------------------------------------------
namespace android {
@@ -130,6 +132,7 @@ GLES20RenderEngine::GLES20RenderEngine() :

    //mColorBlindnessCorrection = M;

#ifdef USE_HWC2
    // retrieve wide-color and hdr settings from configstore
    using namespace android::hardware::configstore;
    using namespace android::hardware::configstore::V1_0;
@@ -149,6 +152,7 @@ GLES20RenderEngine::GLES20RenderEngine() :
        mat4 gamutTransform(transpose(srgbToP3));
        mSrgbToDisplayP3 = gamutTransform;
    }
#endif
}

GLES20RenderEngine::~GLES20RenderEngine() {
@@ -383,6 +387,7 @@ void GLES20RenderEngine::drawMesh(const Mesh& mesh) {
            mesh.getByteStride(),
            mesh.getPositions());

#ifdef USE_HWC2
    if (usesWideColor()) {
        Description wideColorState = mState;
        if (mDataSpace != HAL_DATASPACE_DISPLAY_P3) {
@@ -403,6 +408,11 @@ void GLES20RenderEngine::drawMesh(const Mesh& mesh) {

        glDrawArrays(mesh.getPrimitive(), 0, mesh.getVertexCount());
    }
#else
    ProgramCache::getInstance().useProgram(mState);

    glDrawArrays(mesh.getPrimitive(), 0, mesh.getVertexCount());
#endif

    if (mesh.getTexCoordsSize()) {
        glDisableVertexAttribArray(Program::texCoords);
@@ -411,11 +421,13 @@ void GLES20RenderEngine::drawMesh(const Mesh& mesh) {

void GLES20RenderEngine::dump(String8& result) {
    RenderEngine::dump(result);
#ifdef USE_HWC2
    if (usesWideColor()) {
        result.append("Wide-color: On\n");
    } else {
        result.append("Wide-color: Off\n");
    }
#endif
}

// ---------------------------------------------------------------------------
+2 −2
Original line number Diff line number Diff line
@@ -570,7 +570,7 @@ void SurfaceFlinger::init() {
            sp<DisplayDevice> hw = new DisplayDevice(this,
                    type, hwcId, mHwc->getFormat(hwcId), isSecure, token,
                    fbs, producer,
                    mRenderEngine->getEGLConfig());
                    mRenderEngine->getEGLConfig(), false);
            if (i > DisplayDevice::DISPLAY_PRIMARY) {
                // FIXME: currently we don't get blank/unblank requests
                // for displays other than the main display, so we always
@@ -1740,7 +1740,7 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags)
                                state.type, hwcDisplayId,
                                mHwc->getFormat(hwcDisplayId), state.isSecure,
                                display, dispSurface, producer,
                                mRenderEngine->getEGLConfig());
                                mRenderEngine->getEGLConfig(), false);
                        hw->setLayerStack(state.layerStack);
                        hw->setProjection(state.orientation,
                                state.viewport, state.frame);