Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
engine-ctx-facilities.hpp
Go to the documentation of this file.
1/*
2 ENGINE-CTX-FACILITIES.hpp - Implementation of global render engine operational services
3
4 Copyright (C)
5 2024, Hermann Vosseler <Ichthyostega@web.de>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12*/
13
28#ifndef STEAM_ENGINE_ENGINE_CTX_FACILITIES_H
29#define STEAM_ENGINE_ENGINE_CTX_FACILITIES_H
30
31
34#include "lib/nocopy.hpp"
35
36//#include <utility>
37#include <memory>
38
39
40namespace steam {
41namespace engine {
42
43// using lib::Literal;
44 using std::unique_ptr;
45// using std::forward;
46
49 {
50 unique_ptr<BufferProvider> memProvider_;
51 unique_ptr<BufferProvider> cacheProvider_;
52
53 public:
54 Facilities();
55
58 {
59 REQUIRE (memProvider_);
60 return *memProvider_;
61 }
62
69 };
70
71
72
73}} // namespace steam::engine
74#endif /*STEAM_ENGINE_ENGINE_CTX_FACILITIES_H*/
Abstraction to represent buffer management and lifecycle within the render engine.
Interface: a facility providing and managing working buffers for media calculations.
unique_ptr< BufferProvider > cacheProvider_
unique_ptr< BufferProvider > memProvider_
Any copy and copy construction prohibited.
Definition nocopy.hpp:38
Dependency context to hold global parameters and services for the render engine.
Steam-Layer implementation namespace root.
Mix-Ins to allow or prohibit various degrees of copying and cloning.