1721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams/* 2721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * Copyright (C) 2011 The Android Open Source Project 3721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * 4721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * you may not use this file except in compliance with the License. 6721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * You may obtain a copy of the License at 7721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * 8721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 9721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * 10721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * Unless required by applicable law or agreed to in writing, software 11721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * See the License for the specific language governing permissions and 14721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams * limitations under the License. 15721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams */ 16721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 17721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 18721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams#include "rsdCore.h" 19721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams#include "rsdProgramStore.h" 20721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 21721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams#include "rsContext.h" 22721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams#include "rsProgramStore.h" 23721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 24721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams#include <GLES/gl.h> 25721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams#include <GLES/glext.h> 26721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 27721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 28721acc495b859c6d884725a4f9b5523583dd11c7Jason Samsusing namespace android; 29721acc495b859c6d884725a4f9b5523583dd11c7Jason Samsusing namespace android::renderscript; 30721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 31721acc495b859c6d884725a4f9b5523583dd11c7Jason Samsbool rsdProgramRasterInit(const Context *, const ProgramRaster *) { 32721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams return true; 33721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams} 34721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 352382aba4a55c6ae74789c478eead8fbd96593321Jason Samsvoid rsdProgramRasterSetActive(const Context *rsc, const ProgramRaster *pr) { 36721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams switch (pr->mHal.state.cull) { 37721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams case RS_CULL_BACK: 382382aba4a55c6ae74789c478eead8fbd96593321Jason Sams RSD_CALL_GL(glEnable, GL_CULL_FACE); 392382aba4a55c6ae74789c478eead8fbd96593321Jason Sams RSD_CALL_GL(glCullFace, GL_BACK); 40721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams break; 41721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams case RS_CULL_FRONT: 422382aba4a55c6ae74789c478eead8fbd96593321Jason Sams RSD_CALL_GL(glEnable, GL_CULL_FACE); 432382aba4a55c6ae74789c478eead8fbd96593321Jason Sams RSD_CALL_GL(glCullFace, GL_FRONT); 44721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams break; 45721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams case RS_CULL_NONE: 462382aba4a55c6ae74789c478eead8fbd96593321Jason Sams RSD_CALL_GL(glDisable, GL_CULL_FACE); 47721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams break; 4825a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk default: 49c0a65425f8eb3573b1abd2a48292ca953c0a8590Alex Sakhartchouk rsc->setError(RS_ERROR_FATAL_DRIVER, "Invalid cull type"); 5025a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk break; 51721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams } 52721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 53721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams} 54721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 55721acc495b859c6d884725a4f9b5523583dd11c7Jason Samsvoid rsdProgramRasterDestroy(const Context *, const ProgramRaster *) { 56721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams} 57721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 58721acc495b859c6d884725a4f9b5523583dd11c7Jason Sams 59