| Jason Sams | 5fd09d8 | 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 | e514b45 | 2009-09-25 14:51:22 -0700 | [diff] [blame] | 31 | ProgramRaster(Context *rsc, | 
|  | 32 | Element *in, | 
| Jason Sams | 5fd09d8 | 2009-09-23 13:57:02 -0700 | [diff] [blame] | 33 | Element *out, | 
|  | 34 | bool pointSmooth, | 
|  | 35 | bool lineSmooth, | 
|  | 36 | bool pointSprite); | 
|  | 37 | virtual ~ProgramRaster(); | 
|  | 38 |  | 
|  | 39 | virtual void setupGL(const Context *, ProgramRasterState *); | 
| Jason Sams | c460e55 | 2009-11-25 13:22:07 -0800 | [diff] [blame^] | 40 | virtual void setupGL2(const Context *, ProgramRasterState *); | 
| Jason Sams | 5fd09d8 | 2009-09-23 13:57:02 -0700 | [diff] [blame] | 41 |  | 
|  | 42 | void setLineWidth(float w); | 
|  | 43 | void setPointSize(float s); | 
|  | 44 |  | 
|  | 45 | protected: | 
|  | 46 | bool mPointSmooth; | 
|  | 47 | bool mLineSmooth; | 
|  | 48 | bool mPointSprite; | 
|  | 49 |  | 
|  | 50 | float mPointSize; | 
|  | 51 | float mLineWidth; | 
|  | 52 |  | 
|  | 53 |  | 
|  | 54 | }; | 
|  | 55 |  | 
|  | 56 | class ProgramRasterState | 
|  | 57 | { | 
|  | 58 | public: | 
|  | 59 | ProgramRasterState(); | 
|  | 60 | ~ProgramRasterState(); | 
|  | 61 | void init(Context *rsc, int32_t w, int32_t h); | 
| Jason Sams | f2649a9 | 2009-09-25 16:37:33 -0700 | [diff] [blame] | 62 | void deinit(Context *rsc); | 
| Jason Sams | 5fd09d8 | 2009-09-23 13:57:02 -0700 | [diff] [blame] | 63 |  | 
|  | 64 | ObjectBaseRef<ProgramRaster> mDefault; | 
|  | 65 | ObjectBaseRef<ProgramRaster> mLast; | 
|  | 66 | }; | 
|  | 67 |  | 
|  | 68 |  | 
|  | 69 | } | 
|  | 70 | } | 
|  | 71 | #endif | 
|  | 72 |  | 
|  | 73 |  | 
|  | 74 |  | 
|  | 75 |  |