所有权添加完成
This commit is contained in:
@@ -74,10 +74,10 @@ using Threading_Test_Triple_State = Triple_State_Strategy<Threading_Test_State_B
|
||||
struct Threading_Test_Scene_Renderable : Renderable_Base {
|
||||
Threading_Test_Scene_Renderable(Scene_Base& scene, std::atomic<int>& render_count, std::atomic<std::uint64_t>& maximum_sequence)
|
||||
: Renderable_Base(scene, {.cache_enabled = false}), render_count(&render_count), maximum_sequence(&maximum_sequence) {}
|
||||
void prepare(const Scene_Render_Context& context) override {
|
||||
void prepare(const Prepare_Render_Context& context) override {
|
||||
render_count->fetch_add(1, std::memory_order_relaxed);
|
||||
std::uint64_t maximum = maximum_sequence->load(std::memory_order_acquire);
|
||||
while (maximum < context.render_sequence && !maximum_sequence->compare_exchange_weak(maximum, context.render_sequence, std::memory_order_acq_rel)) {}
|
||||
while (maximum < context.frame.render_sequence && !maximum_sequence->compare_exchange_weak(maximum, context.frame.render_sequence, std::memory_order_acq_rel)) {}
|
||||
}
|
||||
std::atomic<int>* render_count;
|
||||
std::atomic<std::uint64_t>* maximum_sequence;
|
||||
@@ -85,8 +85,8 @@ struct Threading_Test_Scene_Renderable : Renderable_Base {
|
||||
struct Threading_Test_Render_Graph_Renderable : Renderable_Base {
|
||||
Threading_Test_Render_Graph_Renderable(Scene_Base& scene, std::atomic<int>& executed) : Renderable_Base(scene, {.cache_enabled = false}), executed(&executed) {}
|
||||
void build_prepare_graph(Renderable_Graph_Builder& graph) override {
|
||||
graph.emplace("prepare", "Prepare", Render_Node_Kind::prepare,
|
||||
[this](const Scene_Render_Context&) {
|
||||
graph.emplace("prepare", "Prepare",
|
||||
[this](const Prepare_Render_Context&) {
|
||||
executed->fetch_add(1, std::memory_order_relaxed);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user