| Jason Sams | ebfb436 | 2009-09-23 13:57:02 -0700 | [diff] [blame] | 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_PROGRAM_RASTER_H | 
|  | 18 | #define ANDROID_RS_PROGRAM_RASTER_H | 
|  | 19 |  | 
|  | 20 | #include "rsProgram.h" | 
|  | 21 |  | 
|  | 22 | // --------------------------------------------------------------------------- | 
|  | 23 | namespace android { | 
|  | 24 | namespace renderscript { | 
|  | 25 |  | 
|  | 26 | class ProgramRasterState; | 
|  | 27 |  | 
|  | 28 | class ProgramRaster : public Program | 
|  | 29 | { | 
|  | 30 | public: | 
| Jason Sams | a9e7a05 | 2009-09-25 14:51:22 -0700 | [diff] [blame] | 31 | ProgramRaster(Context *rsc, | 
| Jason Sams | ebfb436 | 2009-09-23 13:57:02 -0700 | [diff] [blame] | 32 | bool pointSmooth, | 
|  | 33 | bool lineSmooth, | 
|  | 34 | bool pointSprite); | 
|  | 35 | virtual ~ProgramRaster(); | 
|  | 36 |  | 
|  | 37 | virtual void setupGL(const Context *, ProgramRasterState *); | 
| Jason Sams | bb51c40 | 2009-11-25 13:22:07 -0800 | [diff] [blame] | 38 | virtual void setupGL2(const Context *, ProgramRasterState *); | 
| Jason Sams | ebfb436 | 2009-09-23 13:57:02 -0700 | [diff] [blame] | 39 |  | 
|  | 40 | void setLineWidth(float w); | 
|  | 41 | void setPointSize(float s); | 
|  | 42 |  | 
|  | 43 | protected: | 
|  | 44 | bool mPointSmooth; | 
|  | 45 | bool mLineSmooth; | 
|  | 46 | bool mPointSprite; | 
|  | 47 |  | 
|  | 48 | float mPointSize; | 
|  | 49 | float mLineWidth; | 
|  | 50 |  | 
|  | 51 |  | 
|  | 52 | }; | 
|  | 53 |  | 
|  | 54 | class ProgramRasterState | 
|  | 55 | { | 
|  | 56 | public: | 
|  | 57 | ProgramRasterState(); | 
|  | 58 | ~ProgramRasterState(); | 
|  | 59 | void init(Context *rsc, int32_t w, int32_t h); | 
| Jason Sams | 61f08d6 | 2009-09-25 16:37:33 -0700 | [diff] [blame] | 60 | void deinit(Context *rsc); | 
| Jason Sams | ebfb436 | 2009-09-23 13:57:02 -0700 | [diff] [blame] | 61 |  | 
|  | 62 | ObjectBaseRef<ProgramRaster> mDefault; | 
|  | 63 | ObjectBaseRef<ProgramRaster> mLast; | 
|  | 64 | }; | 
|  | 65 |  | 
|  | 66 |  | 
|  | 67 | } | 
|  | 68 | } | 
|  | 69 | #endif | 
|  | 70 |  | 
|  | 71 |  | 
|  | 72 |  | 
|  | 73 |  |