1b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel/* 2b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. 3b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * Not a Contribution. 4b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * 5b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * Copyright 2015 The Android Open Source Project 6b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * 7b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * Licensed under the Apache License, Version 2.0 (the "License"); 8b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * you may not use this file except in compliance with the License. 9b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * You may obtain a copy of the License at 10b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * 11b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * http://www.apache.org/licenses/LICENSE-2.0 12b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * 13b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * Unless required by applicable law or agreed to in writing, software 14b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * distributed under the License is distributed on an "AS IS" BASIS, 15b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * See the License for the specific language governing permissions and 17b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel * limitations under the License. 18b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel */ 19b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel 20b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel#ifndef __TONEMAPPER_TONEMAP_H__ 21b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel#define __TONEMAPPER_TONEMAP_H__ 22b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel 23b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel#define TONEMAP_FORWARD 0 24b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel#define TONEMAP_INVERSE 1 25b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel 26b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel#include "EGLImageWrapper.h" 276e71b7f95e9fdc03147c5f235060dd4ed4f23b86Thierry Strudel#include "engine.h" 28b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel 29b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudelclass Tonemapper { 30b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel private: 316e71b7f95e9fdc03147c5f235060dd4ed4f23b86Thierry Strudel void* engineContext; 32b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel unsigned int tonemapTexture; 33b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel unsigned int lutXformTexture; 34b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel unsigned int programID; 35f1fe88efc15425cee878b83f345d88068ba03cfdNaseer Ahmed float lutXformScaleOffset[2]; 36f1fe88efc15425cee878b83f345d88068ba03cfdNaseer Ahmed float tonemapScaleOffset[2]; 37b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel EGLImageWrapper* eglImageWrapper; 38b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel Tonemapper(); 39b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel 40b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel public: 41b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel ~Tonemapper(); 42b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel static Tonemapper *build(int type, void *colorMap, int colorMapSize, void *lutXform, 43f1fe88efc15425cee878b83f345d88068ba03cfdNaseer Ahmed int lutXformSize, bool isSecure); 44b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel int blit(const void *dst, const void *src, int srcFenceFd); 45b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel}; 46b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel 47b06147dd70f03970c8f3b30837a82394b814cb43Thierry Strudel#endif //__TONEMAPPER_TONEMAP_H__ 48