aboutsummaryrefslogtreecommitdiff
path: root/include/amber/amber.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/amber/amber.h')
-rw-r--r--include/amber/amber.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/include/amber/amber.h b/include/amber/amber.h
index 95eb189..c4ab3a0 100644
--- a/include/amber/amber.h
+++ b/include/amber/amber.h
@@ -23,6 +23,7 @@
#include "amber/recipe.h"
#include "amber/result.h"
+#include "amber/value.h"
namespace amber {
@@ -40,11 +41,24 @@ enum EngineType {
/// Override point of engines to add their own configuration.
struct EngineConfig {};
+struct BufferInfo {
+ /// Holds the buffer name
+ std::string buffer_name;
+ /// Holds the buffer width
+ uint32_t width;
+ /// Holds the buffer height
+ uint32_t height;
+ /// Contains the buffer internal data
+ std::vector<Value> values;
+};
+
struct Options {
/// Sets the engine to be created. Default Vulkan.
EngineType engine;
/// Holds engine specific configuration. Ownership stays with the caller.
EngineConfig* config;
+ /// Lists the buffers to extract at the end of the execution
+ std::vector<BufferInfo> extractions;
};
/// Main interface to the Amber environment.
@@ -58,13 +72,13 @@ class Amber {
/// Executes the given |recipe| with the provided |opts|. Returns a
/// |Result| which indicates if the execution succeded.
- amber::Result Execute(const amber::Recipe* recipe, const Options& opts);
+ amber::Result Execute(const amber::Recipe* recipe, Options* opts);
/// Executes the given |recipe| with the provided |opts|. Will use
/// |shader_map| to lookup shader data before attempting to compile the
/// shader if possible.
amber::Result ExecuteWithShaderData(const amber::Recipe* recipe,
- const Options& opts,
+ Options* opts,
const ShaderMap& shader_data);
};