rsProgramRaster.h revision 771565f47fc44608444c00aa8fa3bda769ceaece
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
285fd09d847586f9680b4f495413b6ca5fbb69af6eJason Samsclass ProgramRaster : public Program
295fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams{
305fd09d847586f9680b4f495413b6ca5fbb69af6eJason Samspublic:
31e514b45de8561fbc6ef6770845102ca10b0a69d7Jason Sams    ProgramRaster(Context *rsc,
325fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams                  bool pointSmooth,
335fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams                  bool lineSmooth,
345fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams                  bool pointSprite);
355fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    virtual ~ProgramRaster();
365fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
375fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    virtual void setupGL(const Context *, ProgramRasterState *);
38c460e55d78cbe8bee95c5c947dfe541218142a5bJason Sams    virtual void setupGL2(const Context *, ProgramRasterState *);
395fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
405fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    void setLineWidth(float w);
415fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    void setPointSize(float s);
425fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
435fd09d847586f9680b4f495413b6ca5fbb69af6eJason Samsprotected:
445fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    bool mPointSmooth;
455fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    bool mLineSmooth;
465fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    bool mPointSprite;
475fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
485fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    float mPointSize;
495fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    float mLineWidth;
505fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
515fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
525fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams};
535fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
545fd09d847586f9680b4f495413b6ca5fbb69af6eJason Samsclass ProgramRasterState
555fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams{
565fd09d847586f9680b4f495413b6ca5fbb69af6eJason Samspublic:
575fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    ProgramRasterState();
585fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    ~ProgramRasterState();
59771565f47fc44608444c00aa8fa3bda769ceaeceJason Sams    void init(Context *rsc);
60f2649a961db2995e9e24a6c98f8a419f1496c1b7Jason Sams    void deinit(Context *rsc);
615fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
625fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    ObjectBaseRef<ProgramRaster> mDefault;
635fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams    ObjectBaseRef<ProgramRaster> mLast;
645fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams};
655fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
665fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
675fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams}
685fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams}
695fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams#endif
705fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
715fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
725fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
735fd09d847586f9680b4f495413b6ca5fbb69af6eJason Sams
74