rsProgramRaster.h revision afb743aca56c18beb7ab924e75cb6e070ef3e55a
15fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams/* 25fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * Copyright (C) 2009 The Android Open Source Project 35fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * 45fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 55fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * you may not use this file except in compliance with the License. 65fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * You may obtain a copy of the License at 75fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * 85fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * http://www.apache.org/licenses/LICENSE-2.0 95fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * 105fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * Unless required by applicable law or agreed to in writing, software 115fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 125fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * See the License for the specific language governing permissions and 145fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams * limitations under the License. 155fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams */ 165fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 175fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams#ifndef ANDROID_RS_PROGRAM_RASTER_H 185fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams#define ANDROID_RS_PROGRAM_RASTER_H 195fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 205fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams#include "rsProgram.h" 215fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 225fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams// --------------------------------------------------------------------------- 235fd09d847586f9680b4f495413b6ca5fbb69af6eJason Samsnamespace android { 245fd09d847586f9680b4f495413b6ca5fbb69af6eJason Samsnamespace renderscript { 255fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 265fd09d847586f9680b4f495413b6ca5fbb69af6eJason Samsclass ProgramRasterState; 275fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 28afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex Sakhartchoukclass ProgramRaster : public Program { 295fd09d847586f9680b4f495413b6ca5fbb69af6eJason Samspublic: 30e514b45de8561fbc6ef6770845102ca10b0a69d7Jason Sams ProgramRaster(Context *rsc, 315fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams bool pointSmooth, 325fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams bool lineSmooth, 335fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams bool pointSprite); 345fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams virtual ~ProgramRaster(); 355fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 36c460e55d78cbe8bee95c5c947dfe541218142a5bJason Sams virtual void setupGL2(const Context *, ProgramRasterState *); 37fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk virtual void serialize(OStream *stream) const; 38b825f67adb5d1e1751fe108e6dbf9c6f2555c283Alex Sakhartchouk virtual RsA3DClassID getClassId() const { return RS_A3D_CLASS_ID_PROGRAM_RASTER; } 39fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk static ProgramRaster *createFromStream(Context *rsc, IStream *stream); 405fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 415fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams void setLineWidth(float w); 42d18c744a37441311c9b65254a35db456835adad3Alex Sakhartchouk void setCullMode(RsCullMode mode); 435fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 445fd09d847586f9680b4f495413b6ca5fbb69af6eJason Samsprotected: 455fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams bool mPointSmooth; 465fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams bool mLineSmooth; 475fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams bool mPointSprite; 485fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams float mLineWidth; 49d18c744a37441311c9b65254a35db456835adad3Alex Sakhartchouk RsCullMode mCull; 505fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams}; 515fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 52afb743aca56c18beb7ab924e75cb6e070ef3e55aAlex Sakhartchoukclass ProgramRasterState { 535fd09d847586f9680b4f495413b6ca5fbb69af6eJason Samspublic: 545fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams ProgramRasterState(); 555fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams ~ProgramRasterState(); 56771565f47fc44608444c00aa8fa3bda769ceaeceJason Sams void init(Context *rsc); 57f2649a961db2995e9e24a6c98f8a419f1496c1b7Jason Sams void deinit(Context *rsc); 585fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 595fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams ObjectBaseRef<ProgramRaster> mDefault; 605fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams ObjectBaseRef<ProgramRaster> mLast; 615fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams}; 625fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 635fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 645fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams} 655fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams} 665fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams#endif 675fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 685fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 695fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 705fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams 71