About Social Code
aboutsummaryrefslogtreecommitdiff
path: root/src/kosmickrisp/bridge/mtl_sampler.h
blob: ab751195b2c894d09bd808d791e2fec779538fe8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
 * Copyright 2025 LunarG, Inc.
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: MIT
 */

#ifndef MTL_SAMPLER_H
#define MTL_SAMPLER_H 1

#include "mtl_types.h"

#include <inttypes.h>
#include <stdbool.h>

/* Sampler descriptor */
mtl_sampler_descriptor *mtl_new_sampler_descriptor(void);

/* Sampler descriptor utils */
void mtl_sampler_descriptor_set_normalized_coordinates(
   mtl_sampler_descriptor *descriptor, bool normalized_coordinates);
void mtl_sampler_descriptor_set_address_mode(
   mtl_sampler_descriptor *descriptor,
   enum mtl_sampler_address_mode address_mode_u,
   enum mtl_sampler_address_mode address_mode_v,
   enum mtl_sampler_address_mode address_mode_w);
void
mtl_sampler_descriptor_set_border_color(mtl_sampler_descriptor *descriptor,
                                        enum mtl_sampler_border_color color);
void
mtl_sampler_descriptor_set_filters(mtl_sampler_descriptor *descriptor,
                                   enum mtl_sampler_min_mag_filter min_filter,
                                   enum mtl_sampler_min_mag_filter mag_filter,
                                   enum mtl_sampler_mip_filter mip_filter);
void mtl_sampler_descriptor_set_lod_clamp(mtl_sampler_descriptor *descriptor,
                                          float min, float max);
void
mtl_sampler_descriptor_set_max_anisotropy(mtl_sampler_descriptor *descriptor,
                                          uint64_t max);
void
mtl_sampler_descriptor_set_compare_function(mtl_sampler_descriptor *descriptor,
                                            enum mtl_compare_function function);

/* Sampler */
mtl_sampler *mtl_new_sampler(mtl_device *device,
                             mtl_sampler_descriptor *descriptor);

/* Sampler utils */
uint64_t mtl_sampler_get_gpu_resource_id(mtl_sampler *sampler);

#endif /* MTL_SAMPLER_H */