xref: /aosp_15_r20/frameworks/rs/driver/runtime/rs_sampler.c (revision e1eccf28f96817838ad6867f7f39d2351ec11f56)
1*e1eccf28SAndroid Build Coastguard Worker #include "rs_core.rsh"
2*e1eccf28SAndroid Build Coastguard Worker #include "rs_structs.h"
3*e1eccf28SAndroid Build Coastguard Worker 
4*e1eccf28SAndroid Build Coastguard Worker /**
5*e1eccf28SAndroid Build Coastguard Worker * Sampler
6*e1eccf28SAndroid Build Coastguard Worker */
7*e1eccf28SAndroid Build Coastguard Worker extern rs_sampler_value __attribute__((overloadable))
rsSamplerGetMinification(rs_sampler s)8*e1eccf28SAndroid Build Coastguard Worker         rsSamplerGetMinification(rs_sampler s) {
9*e1eccf28SAndroid Build Coastguard Worker     Sampler_t *prog = (Sampler_t *)s.p;
10*e1eccf28SAndroid Build Coastguard Worker     if (prog == NULL) {
11*e1eccf28SAndroid Build Coastguard Worker         return RS_SAMPLER_INVALID;
12*e1eccf28SAndroid Build Coastguard Worker     }
13*e1eccf28SAndroid Build Coastguard Worker     return prog->mHal.state.minFilter;
14*e1eccf28SAndroid Build Coastguard Worker }
15*e1eccf28SAndroid Build Coastguard Worker 
16*e1eccf28SAndroid Build Coastguard Worker extern rs_sampler_value __attribute__((overloadable))
rsSamplerGetMagnification(rs_sampler s)17*e1eccf28SAndroid Build Coastguard Worker         rsSamplerGetMagnification(rs_sampler s) {
18*e1eccf28SAndroid Build Coastguard Worker     Sampler_t *prog = (Sampler_t *)s.p;
19*e1eccf28SAndroid Build Coastguard Worker     if (prog == NULL) {
20*e1eccf28SAndroid Build Coastguard Worker         return RS_SAMPLER_INVALID;
21*e1eccf28SAndroid Build Coastguard Worker     }
22*e1eccf28SAndroid Build Coastguard Worker     return prog->mHal.state.magFilter;
23*e1eccf28SAndroid Build Coastguard Worker }
24*e1eccf28SAndroid Build Coastguard Worker 
25*e1eccf28SAndroid Build Coastguard Worker extern rs_sampler_value __attribute__((overloadable))
rsSamplerGetWrapS(rs_sampler s)26*e1eccf28SAndroid Build Coastguard Worker         rsSamplerGetWrapS(rs_sampler s) {
27*e1eccf28SAndroid Build Coastguard Worker     Sampler_t *prog = (Sampler_t *)s.p;
28*e1eccf28SAndroid Build Coastguard Worker     if (prog == NULL) {
29*e1eccf28SAndroid Build Coastguard Worker         return RS_SAMPLER_INVALID;
30*e1eccf28SAndroid Build Coastguard Worker     }
31*e1eccf28SAndroid Build Coastguard Worker     return prog->mHal.state.wrapS;
32*e1eccf28SAndroid Build Coastguard Worker }
33*e1eccf28SAndroid Build Coastguard Worker 
34*e1eccf28SAndroid Build Coastguard Worker extern rs_sampler_value __attribute__((overloadable))
rsSamplerGetWrapT(rs_sampler s)35*e1eccf28SAndroid Build Coastguard Worker         rsSamplerGetWrapT(rs_sampler s) {
36*e1eccf28SAndroid Build Coastguard Worker     Sampler_t *prog = (Sampler_t *)s.p;
37*e1eccf28SAndroid Build Coastguard Worker     if (prog == NULL) {
38*e1eccf28SAndroid Build Coastguard Worker         return RS_SAMPLER_INVALID;
39*e1eccf28SAndroid Build Coastguard Worker     }
40*e1eccf28SAndroid Build Coastguard Worker     return prog->mHal.state.wrapT;
41*e1eccf28SAndroid Build Coastguard Worker }
42*e1eccf28SAndroid Build Coastguard Worker 
43*e1eccf28SAndroid Build Coastguard Worker extern float __attribute__((overloadable))
rsSamplerGetAnisotropy(rs_sampler s)44*e1eccf28SAndroid Build Coastguard Worker         rsSamplerGetAnisotropy(rs_sampler s) {
45*e1eccf28SAndroid Build Coastguard Worker     Sampler_t *prog = (Sampler_t *)s.p;
46*e1eccf28SAndroid Build Coastguard Worker     if (prog == NULL) {
47*e1eccf28SAndroid Build Coastguard Worker         return 0.0f;
48*e1eccf28SAndroid Build Coastguard Worker     }
49*e1eccf28SAndroid Build Coastguard Worker     return prog->mHal.state.aniso;
50*e1eccf28SAndroid Build Coastguard Worker }
51