galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
texture_settings.hpp
Go to the documentation of this file.
1auto& sampler = entt::locator<Sampler>::emplace();
2
3// Need to create our default texture sampler object.
4if (Settings::mipmap())
5{
6 switch (Settings::texture_filter())
7 {
8 case GLTextureFilter::NEAREST:
9 sampler.set(GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
10 sampler.set(GL_TEXTURE_MAG_FILTER, GL_NEAREST);
11 break;
12 case GLTextureFilter::BILINEAR:
13 sampler.set(GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
14 sampler.set(GL_TEXTURE_MAG_FILTER, GL_LINEAR);
15 break;
16 case GLTextureFilter::TRILINEAR:
17 sampler.set(GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
18 sampler.set(GL_TEXTURE_MAG_FILTER, GL_LINEAR);
19 break;
20 }
21}
22else
23{
24 if (Settings::texture_filter() == GLTextureFilter::NEAREST)
25 {
26 sampler.set(GL_TEXTURE_MIN_FILTER, GL_NEAREST);
27 sampler.set(GL_TEXTURE_MAG_FILTER, GL_NEAREST);
28 }
29 else
30 {
31 sampler.set(GL_TEXTURE_MIN_FILTER, GL_LINEAR);
32 sampler.set(GL_TEXTURE_MAG_FILTER, GL_LINEAR);
33 }
34}
35
36auto ansio = std::clamp(Settings::ansiotrophy(), 1, 16);
37if (ansio == 3)
38{
39 ansio = 4;
40}
41else if (ansio > 4 && ansio < 8)
42{
43 ansio = 8;
44}
45else
46{
47 ansio = 16;
48}
49sampler.setf(GL_TEXTURE_MAX_ANISOTROPY, static_cast<float>(ansio));
50
51sampler.set(GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
52sampler.set(GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
53sampler.set(GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
54sampler.set(GL_TEXTURE_LOD_BIAS, GL_NONE);
auto & sampler