LUMIERA.clone/src/steam/engine/render-invocation.hpp
Ichthyostega 544075d143 Invocation: rearrange the Render Node development tests
This is an attempt to take aim at the next step,
which is to fill in the missing part for an actual node invocation...

''...still fighting to get ahead, due to complexity of involced concerns...''
2024-12-07 02:17:55 +01:00

77 lines
2.3 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
RENDER-INVOCATION.hpp - initiate the rendering of a single frame
Copyright (C)
2009, Hermann Vosseler <Ichthyostega@web.de>
  **Lumiera** is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published by the
  Free Software Foundation; either version 2 of the License, or (at your
  option) any later version. See the file COPYING for further details.
*/
/** @file render-invocation.hpp
** Initiate a single calculation unit within the renderengine.
** Usually, this will cause the rendering of a single frame or sub-frame.
**
** @todo WIP-WIP-WIP 2024-12 finally about to connect the unfinished draft from 2009
** with the engine structures built bottom-up meanwhile ///////////////////////////////////////////TICKET #905 : Work out what parameters are required to invoke the real code available now....
**
** @see engine::ProcNode
** @see turnout-system.hpp
** @see NodeBase_test
**
*/
#ifndef ENGINE_RENDER_INVOCATION_H
#define ENGINE_RENDER_INVOCATION_H
#include "vault/gear/job.h"
#include "steam/engine/proc-node.hpp"
//#include "steam/engine/buffhandle.hpp"
namespace steam {
namespace engine {
/**
* A concrete JobFunctor with the ability to activate the »Render Node Network«.
* @todo write type comment
* @warning WIP-WIP 2024-12 rework render node invocation for »Playback Vertical Slice«
*/
class RenderInvocation
: public vault::gear::JobClosure ////////////////////////////////////////////////TICKET #1287 : should inherit from JobFunctor, get rid of the C-isms
{
ProcNode& theNode_;
/* === JobFunctor Interface === */
JobKind
getJobKind() const override
{
return CALC_JOB;
}
string diagnostic() const override;
InvocationInstanceID buildInstanceID (HashVal) const override; //////////////////////////////////TICKET #1278 : so what do we need here for real, finally?
size_t hashOfInstance (InvocationInstanceID invoKey) const override;
void invokeJobOperation (vault::gear::JobParameter);
public:
RenderInvocation (ProcNode& exitNode)
: theNode_(exitNode)
{ }
};
}} // namespace steam::engine
#endif