Cogs.Core
CapabilitiesGL20.h
1#pragma once
2
3#include "../ICapabilities.h"
4
5#include "Foundation/StringView.h"
6
7#include <unordered_set>
8
9namespace Cogs
10{
12 {
13 public:
15
16 void initialize(bool useClipControl);
17
18 Vendors::EVendors getVendor() const { return this->vendor; }
19 Series::ESeries getSeries() const { return this->series; }
20 int getModel() const { return model; };
21
22 bool isNvidia() const { return this->vendor == Vendors::nVidia; }
23 bool isAmd() const { return this->vendor == Vendors::AMD; }
24 bool isIntel() const { return this->vendor == Vendors::Intel; }
25 bool isApple() const { return this->vendor == Vendors::Apple; }
26
27 bool isQuadro() const { return this->series == Series::Quadro; }
28
29 int getMaxTextureSlots() const { return deviceCapabilities.MaxTextureSlots; }
30
31 const GraphicsDeviceCapabilities & getDeviceCapabilities() const { return deviceCapabilities; }
32
33 bool isSupported(const StringView & extension) const;
34
35 private:
36 bool logStrings;
37 bool logExtensions;
38
39 Vendors::EVendors vendor;
40 Series::ESeries series;
41
42 int model;
43
44 GraphicsDeviceCapabilities deviceCapabilities;
45
46 std::unordered_set<std::string> extensions;
47
48 public:
49 bool ARB_instanced_arrays; // OpenGL 3.3
50 bool ARB_sampler_objects; // OpenGL 3.3
51
52 bool ARB_base_instance; // OpenGL 4.2
53 bool ARB_shader_image_load_store; // OpenGL 4.2
54 bool ARB_pixel_buffer_object;
55 bool ARB_texture_storage; // OpenGL 4.2
56 bool ARB_texture_storage_multisample; // OpenGL 4.3
57 bool ARB_compute_shader; // OpenGL 4.3
58 bool KHR_debug; // OpenGL 4.3
59 bool ARB_debug_output;
60 bool EXT_texture_filter_anisotropic; // OpenGL 4.6
61 };
62}
Provides a weakly referenced view over the contents of a string.
Definition: StringView.h:24
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
Series::ESeries getSeries() const
Gets the series of GPUs the currently initialized graphics device belongs to.
int getModel() const
Gets the model number of the initialized graphics device.
Vendors::EVendors getVendor() const
Gets the known vendor of the initialized graphics device.
int getMaxTextureSlots() const
Gets maximum number of supported texture slots.
const GraphicsDeviceCapabilities & getDeviceCapabilities() const
Gets the device capabilities in a structure.
Contains device capabilities.
Definition: ICapabilities.h:67
Provides capability query functionality.
@ Quadro
nVidia Quadro professional graphics adapters.
Definition: ICapabilities.h:48
@ Apple
Apple silicon.
Definition: ICapabilities.h:24
@ nVidia
nVidia Corporation.
Definition: ICapabilities.h:20