summaryrefslogtreecommitdiffstats
path: root/src/modules/gpu/option.h
blob: 7ec0df33ed3da47eef5cc245bc9ba90e7676907a (plain) (blame)
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
#pragma once

#include "common/option.h"
#include "common/percent.h"

typedef enum FF_A_PACKED FFGPUType {
    FF_GPU_TYPE_NONE,    // Indicates no specific GPU type. Useful as a hide filter only.
    FF_GPU_TYPE_UNKNOWN, // Indicates an unknown or unrecognized GPU type.
    FF_GPU_TYPE_INTEGRATED,
    FF_GPU_TYPE_DISCRETE,
} FFGPUType;

typedef enum FF_A_PACKED FFGPUDetectionMethod {
    FF_GPU_DETECTION_METHOD_AUTO,
    FF_GPU_DETECTION_METHOD_PCI,
    FF_GPU_DETECTION_METHOD_VULKAN,
    FF_GPU_DETECTION_METHOD_OPENCL,
    FF_GPU_DETECTION_METHOD_OPENGL,
} FFGPUDetectionMethod;

typedef struct FFGPUOptions {
    FFModuleArgs moduleArgs;

    FFGPUType hideType;
    FFGPUDetectionMethod detectionMethod;
    bool temp;
    bool driverSpecific;
    FFColorRangeConfig tempConfig;
    FFPercentageModuleConfig percent;
} FFGPUOptions;

static_assert(sizeof(FFGPUOptions) <= FF_OPTION_MAX_SIZE, "FFGPUOptions size exceeds maximum allowed size");