ShaderNode: Add preview / cast / texture sampling

This commit is contained in:
Lynix
2020-05-23 22:04:10 +02:00
parent 206724c911
commit 93e76a17c7
23 changed files with 686 additions and 144 deletions

View File

@@ -0,0 +1,3 @@
#include <Previews/PreviewModel.hpp>
PreviewModel::~PreviewModel() = default;

View 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

View File

@@ -0,0 +1 @@
#include <Previews/PreviewModel.hpp>

View 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;
}

View 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

View File

@@ -0,0 +1 @@
#include <Previews/QuadPreview.hpp>