• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   * Copyright (C) 2009 The Android Open Source Project
3   *
4   * Licensed under the Apache License, Version 2.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   *      http://www.apache.org/licenses/LICENSE-2.0
9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  #ifndef ANDROID_RS_ADAPTER_H
18  #define ANDROID_RS_ADAPTER_H
19  
20  #include "rsAllocation.h"
21  
22  // ---------------------------------------------------------------------------
23  namespace android {
24  namespace renderscript {
25  
26  
27  class Adapter1D : public ObjectBase
28  {
29  
30  public:
31      // By policy this allocation will hold a pointer to the type
32      // but will not destroy it on destruction.
33      Adapter1D(Context *);
34      Adapter1D(Context *, Allocation *);
35      void reset();
36      void * getElement(uint32_t x);
37  
setAllocation(Allocation * a)38      void setAllocation(Allocation *a) {mAllocation.set(a);}
39  
getDimX()40      uint32_t getDimX() const {return mAllocation->getType()->getLODDimX(mLOD);}
41  
getBaseType()42      const Type * getBaseType() const {return mAllocation->getType();}
43  
setY(uint32_t y)44      inline void setY(uint32_t y) {mY = y;}
setZ(uint32_t z)45      inline void setZ(uint32_t z) {mZ = z;}
setLOD(uint32_t lod)46      inline void setLOD(uint32_t lod) {mLOD = lod;}
setFace(uint32_t face)47      inline void setFace(uint32_t face) {mFace = face;}
48      //void setArray(uint32_t num, uint32_t value);
49  
50      void subData(uint32_t xoff, uint32_t count, const void *data);
51      void data(const void *data);
52  
53  protected:
54      ObjectBaseRef<Allocation> mAllocation;
55      uint32_t mY;
56      uint32_t mZ;
57      uint32_t mLOD;
58      uint32_t mFace;
59  };
60  
61  class Adapter2D : public ObjectBase
62  {
63  
64  public:
65      // By policy this allocation will hold a pointer to the type
66      // but will not destroy it on destruction.
67      Adapter2D(Context *);
68      Adapter2D(Context *, Allocation *);
69      void reset();
70      void * getElement(uint32_t x, uint32_t y) const;
71  
getDimX()72      uint32_t getDimX() const {return mAllocation->getType()->getLODDimX(mLOD);}
getDimY()73      uint32_t getDimY() const {return mAllocation->getType()->getLODDimY(mLOD);}
getBaseType()74      const Type * getBaseType() const {return mAllocation->getType();}
75  
setAllocation(Allocation * a)76      void setAllocation(Allocation *a) {mAllocation.set(a);}
setZ(uint32_t z)77      inline void setZ(uint32_t z) {mZ = z;}
setLOD(uint32_t lod)78      inline void setLOD(uint32_t lod) {mLOD = lod;}
setFace(uint32_t face)79      inline void setFace(uint32_t face) {mFace = face;}
80      //void setArray(uint32_t num, uint32_t value);
81  
82      void data(const void *data);
83      void subData(uint32_t xoff, uint32_t yoff, uint32_t w, uint32_t h, const void *data);
84  
85  protected:
86      ObjectBaseRef<Allocation> mAllocation;
87      uint32_t mZ;
88      uint32_t mLOD;
89      uint32_t mFace;
90  };
91  
92  
93  }
94  }
95  #endif
96  
97