KWin
Loading...
Searching...
No Matches
gllut3D.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2023 Xaver Hugl <xaver.hugl@gmail.com>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9#pragma once
10
11#include "kwin_export.h"
12
13#include <QVector3D>
14#include <QVector>
15#include <epoxy/gl.h>
16#include <functional>
17#include <memory>
18
19namespace KWin
20{
21
22class KWIN_EXPORT GlLookUpTable3D
23{
24public:
25 explicit GlLookUpTable3D(GLuint handle, size_t xSize, size_t ySize, size_t zSize);
27
28 GLuint handle() const;
29 size_t xSize() const;
30 size_t ySize() const;
31 size_t zSize() const;
32
33 void bind();
34
35 static std::unique_ptr<GlLookUpTable3D> create(const std::function<QVector3D(size_t x, size_t y, size_t z)> &mapping, size_t xSize, size_t ySize, size_t zSize);
36
37private:
38 const GLuint m_handle;
39 const size_t m_xSize;
40 const size_t m_ySize;
41 const size_t m_zSize;
42};
43
44}