载入中...
搜索中...
未找到
UvPaintSession.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include "common/Result.h"
6
7#include <cstdint>
8#include <memory>
9#include <vector>
10
11namespace eve::image {
12
13class ImageData;
14struct UvPaintReceipt;
15
23public:
30
32 [[nodiscard]] Result<void> initializeResult(const ImageData& image);
34 [[nodiscard]] Result<UvPaintReceipt> paintCircleResult(float u, float v, float radiusPixels, float r, float g,
35 float b, float a, bool wrapU = false, bool wrapV = false);
37 [[nodiscard]] Result<void> undoResult();
39 [[nodiscard]] Result<void> restoreResult();
41 [[nodiscard]] Result<void> bakeResult();
43 [[nodiscard]] Result<std::unique_ptr<ImageData>> currentImageResult() const;
45 [[nodiscard]] Result<void> copyCurrentToResult(ImageData& destination) const;
47 [[nodiscard]] std::uint64_t revision() const noexcept { return revision_; }
49 [[nodiscard]] int undoCount() const noexcept { return static_cast<int>(undo_.size()); }
51 [[nodiscard]] bool isInitialized() const noexcept { return current_ != nullptr; }
52
53private:
54 std::unique_ptr<ImageData> original_;
55 std::unique_ptr<ImageData> current_;
56 std::vector<std::unique_ptr<ImageData>> undo_;
57 std::uint64_t revision_ = 0;
58};
59
60} // namespace eve::image
#define EVENGINE_API_PLATFORM
Definition Export.h:107
tensor::Graph g
Definition GpuGraph.cpp:7
vk::UniqueImage image
float u
Definition Grass.cpp:233
double r
float v
MeleePoint3 b
Definition MeleeHit.cpp:41
MeleePoint3 a
Definition MeleeHit.cpp:40
Move-only, checked operation results for the common layer.
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Represents raw pixel data.
Definition ImageData.h:38
Transactional, renderer-independent UV texture painting session.
std::uint64_t revision() const noexcept
Return monotonic session revision.
UvPaintSession(const UvPaintSession &)=delete
UvPaintSession()
Uv paint session.
~UvPaintSession()
Uv paint session.
bool isInitialized() const noexcept
Report whether pixels have been initialized.
UvPaintSession & operator=(const UvPaintSession &)=delete
int undoCount() const noexcept
Return available undo transaction count.