ShaderNode: Add preview / cast / texture sampling
This commit is contained in:
3
src/ShaderNode/Previews/PreviewModel.cpp
Normal file
3
src/ShaderNode/Previews/PreviewModel.cpp
Normal file
@@ -0,0 +1,3 @@
|
||||
#include <Previews/PreviewModel.hpp>
|
||||
|
||||
PreviewModel::~PreviewModel() = default;
|
||||
21
src/ShaderNode/Previews/PreviewModel.hpp
Normal file
21
src/ShaderNode/Previews/PreviewModel.hpp
Normal file
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef NAZARA_SHADERNODES_PREVIEWMODEL_HPP
|
||||
#define NAZARA_SHADERNODES_PREVIEWMODEL_HPP
|
||||
|
||||
#include <Enums.hpp>
|
||||
|
||||
class QImage;
|
||||
|
||||
class PreviewModel
|
||||
{
|
||||
public:
|
||||
PreviewModel() = default;
|
||||
virtual ~PreviewModel();
|
||||
|
||||
virtual QImage GetImage(InputRole role, std::size_t roleIndex) const = 0;
|
||||
};
|
||||
|
||||
#include <Previews/PreviewModel.inl>
|
||||
|
||||
#endif
|
||||
1
src/ShaderNode/Previews/PreviewModel.inl
Normal file
1
src/ShaderNode/Previews/PreviewModel.inl
Normal file
@@ -0,0 +1 @@
|
||||
#include <Previews/PreviewModel.hpp>
|
||||
24
src/ShaderNode/Previews/QuadPreview.cpp
Normal file
24
src/ShaderNode/Previews/QuadPreview.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#include <Previews/QuadPreview.hpp>
|
||||
#include <cassert>
|
||||
|
||||
QImage QuadPreview::GetImage(InputRole role, std::size_t roleIndex) const
|
||||
{
|
||||
assert(role == InputRole::TexCoord);
|
||||
assert(roleIndex == 0);
|
||||
|
||||
QImage uv(128, 128, QImage::Format_RGBA8888);
|
||||
|
||||
std::uint8_t* content = uv.bits();
|
||||
for (std::size_t y = 0; y < 128; ++y)
|
||||
{
|
||||
for (std::size_t x = 0; x < 128; ++x)
|
||||
{
|
||||
*content++ = (x * 255) / 128;
|
||||
*content++ = (y * 255) / 128;
|
||||
*content++ = 0;
|
||||
*content++ = 255;
|
||||
}
|
||||
}
|
||||
|
||||
return uv;
|
||||
}
|
||||
20
src/ShaderNode/Previews/QuadPreview.hpp
Normal file
20
src/ShaderNode/Previews/QuadPreview.hpp
Normal file
@@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef NAZARA_SHADERNODES_QUADPREVIEW_HPP
|
||||
#define NAZARA_SHADERNODES_QUADPREVIEW_HPP
|
||||
|
||||
#include <Previews/PreviewModel.hpp>
|
||||
#include <QtGui/QImage>
|
||||
|
||||
class QuadPreview : public PreviewModel
|
||||
{
|
||||
public:
|
||||
QuadPreview() = default;
|
||||
~QuadPreview() = default;
|
||||
|
||||
QImage GetImage(InputRole role, std::size_t roleIndex) const override;
|
||||
};
|
||||
|
||||
#include <Previews/QuadPreview.inl>
|
||||
|
||||
#endif
|
||||
1
src/ShaderNode/Previews/QuadPreview.inl
Normal file
1
src/ShaderNode/Previews/QuadPreview.inl
Normal file
@@ -0,0 +1 @@
|
||||
#include <Previews/QuadPreview.hpp>
|
||||
Reference in New Issue
Block a user