rsFBOCache.h revision 8e90f2bc1fa35a2dc7bd2aab8b8241b628800218
18e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk/* 28e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * Copyright (C) 2011 The Android Open Source Project 38e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * 48e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * Licensed under the Apache License, Version 2.0 (the "License"); 58e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * you may not use this file except in compliance with the License. 68e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * You may obtain a copy of the License at 78e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * 88e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * http://www.apache.org/licenses/LICENSE-2.0 98e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * 108e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * Unless required by applicable law or agreed to in writing, software 118e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * distributed under the License is distributed on an "AS IS" BASIS, 128e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * See the License for the specific language governing permissions and 148e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk * limitations under the License. 158e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk */ 168e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 178e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk#ifndef ANDROID_FRAME_BUFFER_OBJECT_CACHE_H 188e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk#define ANDROID_FRAME_BUFFER_OBJECT_CACHE_H 198e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 208e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk#include "rsObjectBase.h" 218e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 228e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk// --------------------------------------------------------------------------- 238e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouknamespace android { 248e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouknamespace renderscript { 258e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 268e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchoukclass Allocation; 278e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 288e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchoukclass FBOCache { 298e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchoukpublic: 308e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk FBOCache(); 318e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk ~FBOCache(); 328e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 338e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk void bindColorTarget(Context *rsc, Allocation *a, uint32_t slot); 348e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk void bindDepthTarget(Context *, Allocation *a); 358e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk void resetAll(Context *); 368e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 378e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk void setupGL2(Context *); 388e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 398e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchoukprotected: 408e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 418e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk bool mDirty; 428e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk uint32_t mMaxTargets; 438e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk void checkError(Context *); 448e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk void setColorAttachment(Context *rsc); 458e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk void setDepthAttachment(Context *rsc); 468e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk bool renderToFramebuffer(); 478e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk ObjectBaseRef<Allocation> *mColorTargets; 488e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk ObjectBaseRef<Allocation> mDepthTarget; 498e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 508e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk uint32_t mFBOId; 518e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 528e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk}; 538e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 548e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk} // renderscript 558e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk} // android 568e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk 578e90f2bc1fa35a2dc7bd2aab8b8241b628800218Alex Sakhartchouk#endif //ANDROID_FRAME_BUFFER_OBJECT_CACHE_H 58