Minetest 5.9.0-dev
 
Loading...
Searching...
No Matches
plain.h
Go to the documentation of this file.
1/*
2Minetest
3Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4Copyright (C) 2017 numzero, Lobachevskiy Vitaliy <numzer0@yandex.ru>
5
6This program is free software; you can redistribute it and/or modify
7it under the terms of the GNU Lesser General Public License as published by
8the Free Software Foundation; either version 2.1 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU Lesser General Public License for more details.
15
16You should have received a copy of the GNU Lesser General Public License along
17with this program; if not, write to the Free Software Foundation, Inc.,
1851 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/
20
21#pragma once
22#include "core.h"
23#include "pipeline.h"
24
28class Draw3D : public RenderStep
29{
30public:
31 virtual void setRenderSource(RenderSource *) override {}
32 virtual void setRenderTarget(RenderTarget *target) override { m_target = target; }
33
34 virtual void reset(PipelineContext &context) override {}
35 virtual void run(PipelineContext &context) override;
36
37private:
39};
40
41class DrawWield : public RenderStep
42{
43public:
44 virtual void setRenderSource(RenderSource *) override {}
45 virtual void setRenderTarget(RenderTarget *target) override { m_target = target; }
46
47 virtual void reset(PipelineContext &context) override {}
48 virtual void run(PipelineContext &context) override;
49
50private:
52};
53
57class DrawHUD : public RenderStep
58{
59public:
60 virtual void setRenderSource(RenderSource *) override {}
61 virtual void setRenderTarget(RenderTarget *) override {}
62
63 virtual void reset(PipelineContext &context) override {}
64 virtual void run(PipelineContext &context) override;
65};
66
68{
69public:
70 virtual void setRenderTarget(RenderTarget *) override;
71 virtual void run(PipelineContext &context) override;
72private:
74};
75
77{
78public:
79 virtual void run(PipelineContext &context) override;
80};
81
86class UpscaleStep : public RenderStep
87{
88public:
89
90 virtual void setRenderSource(RenderSource *source) override { m_source = source; }
91 virtual void setRenderTarget(RenderTarget *target) override { m_target = target; }
92 virtual void reset(PipelineContext &context) override {};
93 virtual void run(PipelineContext &context) override;
94private:
97};
98
99std::unique_ptr<RenderStep> create3DStage(Client *client, v2f scale);
100RenderStep* addUpscaling(RenderPipeline *pipeline, RenderStep *previousStep, v2f downscale_factor);
101
Definition: client.h:119
Implements a pipeline step that renders the 3D scene.
Definition: plain.h:29
virtual void run(PipelineContext &context) override
Draw3D pipeline step.
Definition: plain.cpp:31
virtual void setRenderSource(RenderSource *) override
Assigns render source to this step.
Definition: plain.h:31
virtual void reset(PipelineContext &context) override
Definition: plain.h:34
RenderTarget * m_target
Definition: plain.h:38
virtual void setRenderTarget(RenderTarget *target) override
Assigned render target to this step.
Definition: plain.h:32
Implements a pipeline step that renders the game HUD.
Definition: plain.h:58
virtual void setRenderTarget(RenderTarget *) override
Assigned render target to this step.
Definition: plain.h:61
virtual void run(PipelineContext &context) override
Runs the step.
Definition: plain.cpp:53
virtual void reset(PipelineContext &context) override
Definition: plain.h:63
virtual void setRenderSource(RenderSource *) override
Assigns render source to this step.
Definition: plain.h:60
Definition: plain.h:42
RenderTarget * m_target
Definition: plain.h:51
virtual void reset(PipelineContext &context) override
Definition: plain.h:47
virtual void setRenderTarget(RenderTarget *target) override
Assigned render target to this step.
Definition: plain.h:45
virtual void run(PipelineContext &context) override
Runs the step.
Definition: plain.cpp:44
virtual void setRenderSource(RenderSource *) override
Assigns render source to this step.
Definition: plain.h:44
Definition: plain.h:68
RenderTarget * target
Definition: plain.h:73
virtual void run(PipelineContext &context) override
Runs the step.
Definition: plain.cpp:77
virtual void setRenderTarget(RenderTarget *) override
Assigned render target to this step.
Definition: plain.cpp:72
Render Pipeline provides a flexible way to execute rendering steps in the engine.
Definition: pipeline.h:357
Definition: plain.h:77
virtual void run(PipelineContext &context) override
Runs the step.
Definition: plain.cpp:85
Represents a source of rendering information such as textures.
Definition: pipeline.h:68
Base class for rendering steps in the pipeline.
Definition: pipeline.h:288
Represents a render target (screen or framebuffer)
Definition: pipeline.h:86
Provides default empty implementation of supporting methods in a rendering step.
Definition: pipeline.h:314
UpscaleStep step performs rescaling of the image in the source texture 0 to the size of the target.
Definition: plain.h:87
virtual void reset(PipelineContext &context) override
Definition: plain.h:92
virtual void setRenderSource(RenderSource *source) override
Assigns render source to this step.
Definition: plain.h:90
virtual void setRenderTarget(RenderTarget *target) override
Assigned render target to this step.
Definition: plain.h:91
RenderTarget * m_target
Definition: plain.h:96
virtual void run(PipelineContext &context) override
Runs the step.
Definition: plain.cpp:94
RenderSource * m_source
Definition: plain.h:95
core::vector2d< f32 > v2f
Definition: irr_v2d.h:26
Definition: activeobjectmgr.cpp:26
std::unique_ptr< RenderStep > create3DStage(Client *client, v2f scale)
Definition: plain.cpp:103
RenderStep * addUpscaling(RenderPipeline *pipeline, RenderStep *previousStep, v2f downscale_factor)
Definition: plain.cpp:123
void populatePlainPipeline(RenderPipeline *pipeline, Client *client)
Definition: plain.cpp:151
Definition: pipeline.h:35