114607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/*
214607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Copyright (C) 2012 The Android Open Source Project
314607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
414607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Licensed under the Apache License, Version 2.0 (the "License");
514607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * you may not use this file except in compliance with the License.
614607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * You may obtain a copy of the License at
714607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
814607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *      http://www.apache.org/licenses/LICENSE-2.0
914607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
1014607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Unless required by applicable law or agreed to in writing, software
1114607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * distributed under the License is distributed on an "AS IS" BASIS,
1214607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1314607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * See the License for the specific language governing permissions and
1414607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * limitations under the License.
1514607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
1614607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
1714607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/** @file rs_program.rsh
1814607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *  \brief Program object routines
1914607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
2014607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
2114607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
2214607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
2314607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk#ifndef __RS_PROGRAM_RSH__
2414607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk#define __RS_PROGRAM_RSH__
2514607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
263c0c6061ce428609182eedcf82c7f75df074fcf4Alex Sakhartchouk#if (defined(RS_VERSION) && (RS_VERSION >= 16))
273c0c6061ce428609182eedcf82c7f75df074fcf4Alex Sakhartchouk
2814607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/**
2914607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Get program store depth function
3014607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
31340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * @param ps program store to query
3214607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
3314607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchoukextern rs_depth_func __attribute__((overloadable))
34f8e195ee50ac7b01fc0130af6634afe475d2deaeAlex Sakhartchouk    rsgProgramStoreGetDepthFunc(rs_program_store ps);
3514607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
3614607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/**
3714607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Get program store depth mask
3814607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
39340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * @param ps program store to query
4014607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
4114607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchoukextern bool __attribute__((overloadable))
42340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk    rsgProgramStoreIsDepthMaskEnabled(rs_program_store ps);
4314607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/**
4414607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Get program store red component color mask
4514607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
46340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * @param ps program store to query
4714607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
4814607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchoukextern bool __attribute__((overloadable))
49340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk    rsgProgramStoreIsColorMaskRedEnabled(rs_program_store ps);
5014607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
5114607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/**
5214607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Get program store green component color mask
5314607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
54340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * @param ps program store to query
5514607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
5614607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchoukextern bool __attribute__((overloadable))
57340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk    rsgProgramStoreIsColorMaskGreenEnabled(rs_program_store ps);
5814607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
5914607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/**
6014607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Get program store blur component color mask
6114607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
62340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * @param ps program store to query
6314607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
6414607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchoukextern bool __attribute__((overloadable))
65340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk    rsgProgramStoreIsColorMaskBlueEnabled(rs_program_store ps);
6614607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
6714607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/**
6814607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Get program store alpha component color mask
6914607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
70340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * @param ps program store to query
7114607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
7214607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchoukextern bool __attribute__((overloadable))
73340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk    rsgProgramStoreIsColorMaskAlphaEnabled(rs_program_store ps);
7414607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
7514607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/**
7614607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Get program store blend source function
7714607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
78340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * @param ps program store to query
7914607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
8014607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchoukextern rs_blend_src_func __attribute__((overloadable))
81f8e195ee50ac7b01fc0130af6634afe475d2deaeAlex Sakhartchouk        rsgProgramStoreGetBlendSrcFunc(rs_program_store ps);
8214607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
8314607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/**
8414607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Get program store blend destination function
8514607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
86340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * @param ps program store to query
8714607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
8814607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchoukextern rs_blend_dst_func __attribute__((overloadable))
89f8e195ee50ac7b01fc0130af6634afe475d2deaeAlex Sakhartchouk    rsgProgramStoreGetBlendDstFunc(rs_program_store ps);
9014607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
9114607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/**
9214607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Get program store dither state
9314607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
94340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * @param ps program store to query
9514607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
9614607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchoukextern bool __attribute__((overloadable))
97340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk    rsgProgramStoreIsDitherEnabled(rs_program_store ps);
9814607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
9914607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/**
10014607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Get program raster point sprite state
10114607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
102340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * @param pr program raster to query
10314607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
10414607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchoukextern bool __attribute__((overloadable))
105340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk    rsgProgramRasterIsPointSpriteEnabled(rs_program_raster pr);
10614607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
10714607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk/**
10814607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk * Get program raster cull mode
10914607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk *
110340d15add608408d64cc2b9bec4f0d1924552cf5Alex Sakhartchouk * @param pr program raster to query
11114607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk */
11214607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchoukextern rs_cull_mode __attribute__((overloadable))
113f8e195ee50ac7b01fc0130af6634afe475d2deaeAlex Sakhartchouk    rsgProgramRasterGetCullMode(rs_program_raster pr);
11414607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
1153c0c6061ce428609182eedcf82c7f75df074fcf4Alex Sakhartchouk#endif // (defined(RS_VERSION) && (RS_VERSION >= 16))
11614607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
11714607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk#endif // __RS_PROGRAM_RSH__
11814607a6bd1e909a7944e39b7ec71dc0ba65de2cdAlex Sakhartchouk
119