Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorenricoturri1966 <enricoturri@seznam.cz>2021-11-30 14:13:51 +0300
committerenricoturri1966 <enricoturri@seznam.cz>2021-11-30 14:13:51 +0300
commit18cb91a982f636c5e1c844bc754b580b0b9c58c7 (patch)
tree9102940fca621af87519512c57dd829eb58570c3 /src/slic3r/GUI/GCodeViewer.hpp
parent5218570348b2c733abb9842467b06eeae5be650a (diff)
parentef059404b321fc16d2df45c9b6dff794803c71c2 (diff)
Fixed conflicts after merge with master
Diffstat (limited to 'src/slic3r/GUI/GCodeViewer.hpp')
-rw-r--r--src/slic3r/GUI/GCodeViewer.hpp78
1 files changed, 1 insertions, 77 deletions
diff --git a/src/slic3r/GUI/GCodeViewer.hpp b/src/slic3r/GUI/GCodeViewer.hpp
index 908aa3baf..9e33cb6a8 100644
--- a/src/slic3r/GUI/GCodeViewer.hpp
+++ b/src/slic3r/GUI/GCodeViewer.hpp
@@ -27,13 +27,9 @@ class GCodeViewer
using MultiVertexBuffer = std::vector<VertexBuffer>;
using IndexBuffer = std::vector<IBufferType>;
using MultiIndexBuffer = std::vector<IndexBuffer>;
-#if ENABLE_SEAMS_USING_MODELS
using InstanceBuffer = std::vector<float>;
using InstanceIdBuffer = std::vector<size_t>;
-#endif // ENABLE_SEAMS_USING_MODELS
-#if ENABLE_FIX_SEAMS_SYNCH
using InstancesOffsets = std::vector<Vec3f>;
-#endif // ENABLE_FIX_SEAMS_SYNCH
static const std::vector<Color> Extrusion_Role_Colors;
static const std::vector<Color> Options_Colors;
@@ -107,17 +103,10 @@ class GCodeViewer
void reset();
};
-#if ENABLE_SEAMS_USING_MODELS
-#if ENABLE_SEAMS_USING_BATCHED_MODELS
// buffer containing instances data used to render a toolpaths using instanced or batched models
// instance record format:
// instanced models: 5 floats -> position.x|position.y|position.z|width|height (which are sent to the shader as -> vec3 (offset) + vec2 (scales) in GLModel::render_instanced())
// batched models: 3 floats -> position.x|position.y|position.z
-#else
- // buffer containing instances data used to render a toolpaths using instanced models
- // instance record format: 5 floats -> position.x|position.y|position.z|width|height
- // which is sent to the shader as -> vec3 (offset) + vec2 (scales) in GLModel::render_instanced()
-#endif // ENABLE_SEAMS_USING_BATCHED_MODELS
struct InstanceVBuffer
{
// ranges used to render only subparts of the intances
@@ -140,7 +129,6 @@ class GCodeViewer
void reset();
};
-#if ENABLE_SEAMS_USING_BATCHED_MODELS
enum class EFormat : unsigned char
{
InstancedModel,
@@ -148,21 +136,17 @@ class GCodeViewer
};
EFormat format;
-#endif // ENABLE_SEAMS_USING_BATCHED_MODELS
// cpu-side buffer containing all instances data
InstanceBuffer buffer;
// indices of the moves for all instances
std::vector<size_t> s_ids;
-#if ENABLE_FIX_SEAMS_SYNCH
// position offsets, used to show the correct value of the tool position
InstancesOffsets offsets;
-#endif // ENABLE_FIX_SEAMS_SYNCH
Ranges render_ranges;
size_t data_size_bytes() const { return s_ids.size() * instance_size_bytes(); }
-#if ENABLE_SEAMS_USING_BATCHED_MODELS
size_t instance_size_floats() const {
switch (format)
{
@@ -171,14 +155,10 @@ class GCodeViewer
default: { return 0; }
}
}
-#else
- size_t instance_size_floats() const { return 5; }
-#endif // ENABLE_SEAMS_USING_BATCHED_MODELS
size_t instance_size_bytes() const { return instance_size_floats() * sizeof(float); }
void reset();
};
-#endif // ENABLE_SEAMS_USING_MODELS
// ibo buffer containing indices data (for lines/triangles) used to render a specific toolpath type
struct IBuffer
@@ -313,17 +293,9 @@ class GCodeViewer
{
Point,
Line,
-#if ENABLE_SEAMS_USING_MODELS
Triangle,
-#if ENABLE_SEAMS_USING_BATCHED_MODELS
InstancedModel,
BatchedModel
-#else
- Model
-#endif // ENABLE_SEAMS_USING_BATCHED_MODELS
-#else
- Triangle
-#endif // ENABLE_SEAMS_USING_MODELS
};
ERenderPrimitiveType render_primitive_type;
@@ -332,22 +304,18 @@ class GCodeViewer
VBuffer vertices;
std::vector<IBuffer> indices;
-#if ENABLE_SEAMS_USING_MODELS
struct Model
{
GLModel model;
Color color;
InstanceVBuffer instances;
-#if ENABLE_SEAMS_USING_BATCHED_MODELS
GLModel::InitializationData data;
-#endif // ENABLE_SEAMS_USING_BATCHED_MODELS
void reset();
};
// contain the buffer for model primitive types
Model model;
-#endif // ENABLE_SEAMS_USING_MODELS
std::string shader;
std::vector<Path> paths;
@@ -396,7 +364,6 @@ class GCodeViewer
}
size_t max_indices_per_segment_size_bytes() const { return max_indices_per_segment() * sizeof(IBufferType); }
-#if ENABLE_SEAMS_USING_MODELS
bool has_data() const {
switch (render_primitive_type)
{
@@ -405,23 +372,14 @@ class GCodeViewer
case ERenderPrimitiveType::Triangle: {
return !vertices.vbos.empty() && vertices.vbos.front() != 0 && !indices.empty() && indices.front().ibo != 0;
}
-#if ENABLE_SEAMS_USING_BATCHED_MODELS
case ERenderPrimitiveType::InstancedModel: { return model.model.is_initialized() && !model.instances.buffer.empty(); }
case ERenderPrimitiveType::BatchedModel: {
return model.data.vertices_count() > 0 && model.data.indices_count() &&
!vertices.vbos.empty() && vertices.vbos.front() != 0 && !indices.empty() && indices.front().ibo != 0;
}
-#else
- case ERenderPrimitiveType::Model: { return model.model.is_initialized() && !model.instances.buffer.empty(); }
-#endif // ENABLE_SEAMS_USING_BATCHED_MODELS
default: { return false; }
}
}
-#else
- bool has_data() const {
- return !vertices.vbos.empty() && vertices.vbos.front() != 0 && !indices.empty() && indices.front().ibo != 0;
- }
-#endif // ENABLE_SEAMS_USING_MODELS
};
// helper to render shells
@@ -590,36 +548,24 @@ class GCodeViewer
int64_t gl_multi_lines_calls_count{ 0 };
int64_t gl_multi_triangles_calls_count{ 0 };
int64_t gl_triangles_calls_count{ 0 };
-#if ENABLE_SEAMS_USING_MODELS
int64_t gl_instanced_models_calls_count{ 0 };
-#if ENABLE_SEAMS_USING_BATCHED_MODELS
int64_t gl_batched_models_calls_count{ 0 };
-#endif // ENABLE_SEAMS_USING_BATCHED_MODELS
-#endif // ENABLE_SEAMS_USING_MODELS
// memory
int64_t results_size{ 0 };
int64_t total_vertices_gpu_size{ 0 };
int64_t total_indices_gpu_size{ 0 };
-#if ENABLE_SEAMS_USING_MODELS
int64_t total_instances_gpu_size{ 0 };
-#endif // ENABLE_SEAMS_USING_MODELS
int64_t max_vbuffer_gpu_size{ 0 };
int64_t max_ibuffer_gpu_size{ 0 };
int64_t paths_size{ 0 };
int64_t render_paths_size{ 0 };
-#if ENABLE_SEAMS_USING_MODELS
int64_t models_instances_size{ 0 };
-#endif // ENABLE_SEAMS_USING_MODELS
// other
int64_t travel_segments_count{ 0 };
int64_t wipe_segments_count{ 0 };
int64_t extrude_segments_count{ 0 };
-#if ENABLE_SEAMS_USING_MODELS
int64_t instances_count{ 0 };
-#if ENABLE_SEAMS_USING_BATCHED_MODELS
int64_t batched_count{ 0 };
-#endif // ENABLE_SEAMS_USING_BATCHED_MODELS
-#endif // ENABLE_SEAMS_USING_MODELS
int64_t vbuffers_count{ 0 };
int64_t ibuffers_count{ 0 };
@@ -645,40 +591,28 @@ class GCodeViewer
gl_multi_lines_calls_count = 0;
gl_multi_triangles_calls_count = 0;
gl_triangles_calls_count = 0;
-#if ENABLE_SEAMS_USING_MODELS
gl_instanced_models_calls_count = 0;
-#if ENABLE_SEAMS_USING_BATCHED_MODELS
gl_batched_models_calls_count = 0;
-#endif // ENABLE_SEAMS_USING_BATCHED_MODELS
-#endif // ENABLE_SEAMS_USING_MODELS
}
void reset_sizes() {
results_size = 0;
total_vertices_gpu_size = 0;
total_indices_gpu_size = 0;
-#if ENABLE_SEAMS_USING_MODELS
total_instances_gpu_size = 0;
-#endif // ENABLE_SEAMS_USING_MODELS
max_vbuffer_gpu_size = 0;
max_ibuffer_gpu_size = 0;
paths_size = 0;
render_paths_size = 0;
-#if ENABLE_SEAMS_USING_MODELS
models_instances_size = 0;
-#endif // ENABLE_SEAMS_USING_MODELS
}
void reset_others() {
travel_segments_count = 0;
wipe_segments_count = 0;
- extrude_segments_count = 0;
-#if ENABLE_SEAMS_USING_MODELS
+ extrude_segments_count = 0;
instances_count = 0;
-#if ENABLE_SEAMS_USING_BATCHED_MODELS
batched_count = 0;
-#endif // ENABLE_SEAMS_USING_BATCHED_MODELS
-#endif // ENABLE_SEAMS_USING_MODELS
vbuffers_count = 0;
ibuffers_count = 0;
}
@@ -693,12 +627,10 @@ public:
GLModel m_model;
Vec3f m_world_position;
Transform3f m_world_transform;
-#if ENABLE_FIX_SEAMS_SYNCH
// for seams, the position of the marker is on the last endpoint of the toolpath containing it
// the offset is used to show the correct value of tool position in the "ToolPosition" window
// see implementation of render() method
Vec3f m_world_offset;
-#endif // ENABLE_FIX_SEAMS_SYNCH
float m_z_offset{ 0.5f };
bool m_visible{ true };
@@ -708,9 +640,7 @@ public:
const BoundingBoxf3& get_bounding_box() const { return m_model.get_bounding_box(); }
void set_world_position(const Vec3f& position);
-#if ENABLE_FIX_SEAMS_SYNCH
void set_world_offset(const Vec3f& offset) { m_world_offset = offset; }
-#endif // ENABLE_FIX_SEAMS_SYNCH
bool is_visible() const { return m_visible; }
void set_visible(bool visible) { m_visible = visible; }
@@ -764,13 +694,9 @@ public:
Endpoints endpoints;
Endpoints current;
Endpoints last_current;
-#if ENABLE_SEAMS_USING_MODELS
Endpoints global;
-#endif // ENABLE_SEAMS_USING_MODELS
Vec3f current_position{ Vec3f::Zero() };
-#if ENABLE_FIX_SEAMS_SYNCH
Vec3f current_offset{ Vec3f::Zero() };
-#endif // ENABLE_FIX_SEAMS_SYNCH
Marker marker;
GCodeWindow gcode_window;
std::vector<unsigned int> gcode_ids;
@@ -847,9 +773,7 @@ public:
GCodeViewer();
~GCodeViewer() { reset(); }
-#if ENABLE_SEAMS_USING_MODELS
void init();
-#endif // ENABLE_SEAMS_USING_MODELS
// extract rendering data from the given parameters
void load(const GCodeProcessorResult& gcode_result, const Print& print, bool initialized);