mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-05 15:40:37 +08:00
hamfisted fix for opengl 0.70 problems, making and using buffers explicitly for bed grid base
This commit is contained in:
parent
b874915445
commit
4cd8ea9e5f
@ -750,15 +750,26 @@ sub Render {
|
|||||||
# draw ground
|
# draw ground
|
||||||
my $ground_z = GROUND_Z;
|
my $ground_z = GROUND_Z;
|
||||||
if ($self->bed_triangles) {
|
if ($self->bed_triangles) {
|
||||||
|
my($VertexObjID,$NormalObjID,$ColorObjID);
|
||||||
|
my $colors = OpenGL::Array->new_list(GL_FLOAT,(0.8,0.6,0.5,0.4));
|
||||||
|
my $norms = OpenGL::Array->new_list(GL_FLOAT,(0,0,1));
|
||||||
|
($VertexObjID,$NormalObjID,$ColorObjID) =
|
||||||
|
glGenBuffersARB_p(3);
|
||||||
|
$self->bed_triangles->bind($VertexObjID);
|
||||||
|
glBufferDataARB_p(GL_ARRAY_BUFFER_ARB, $self->bed_triangles, GL_STATIC_DRAW_ARB);
|
||||||
|
glVertexPointer_c(3, GL_FLOAT, 0, 0);
|
||||||
|
$norms->bind($NormalObjID);
|
||||||
|
glBufferDataARB_p(GL_ARRAY_BUFFER_ARB, $norms, GL_STATIC_DRAW_ARB);
|
||||||
|
glNormalPointer_c(GL_FLOAT, 0, 0);
|
||||||
|
|
||||||
glDisable(GL_DEPTH_TEST);
|
glDisable(GL_DEPTH_TEST);
|
||||||
|
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
|
||||||
glEnableClientState(GL_VERTEX_ARRAY);
|
glEnableClientState(GL_VERTEX_ARRAY);
|
||||||
glColor4f(0.8, 0.6, 0.5, 0.4);
|
#glNormal3d(0,0,1);
|
||||||
glNormal3d(0,0,1);
|
#glVertexPointer_p(3, $self->bed_triangles);
|
||||||
glVertexPointer_p(3, $self->bed_triangles);
|
|
||||||
glDrawArrays(GL_TRIANGLES, 0, $self->bed_triangles->elements / 3);
|
glDrawArrays(GL_TRIANGLES, 0, $self->bed_triangles->elements / 3);
|
||||||
glDisableClientState(GL_VERTEX_ARRAY);
|
glDisableClientState(GL_VERTEX_ARRAY);
|
||||||
|
|
||||||
@ -766,11 +777,17 @@ sub Render {
|
|||||||
# the object from below
|
# the object from below
|
||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
|
||||||
|
my($GridVertexObjID,$GridNormalObjID,$GridColorObjID);
|
||||||
|
($GridVertexObjID,$GridNormalObjID,$GridColorObjID) =
|
||||||
|
glGenBuffersARB_p(3);
|
||||||
|
glBufferDataARB_p(GL_ARRAY_BUFFER_ARB, $self->bed_grid_lines, GL_STATIC_DRAW_ARB);
|
||||||
|
glVertexPointer_c(3, GL_FLOAT, 0, 0);
|
||||||
# draw grid
|
# draw grid
|
||||||
glLineWidth(3);
|
glLineWidth(3);
|
||||||
glColor4f(0.2, 0.2, 0.2, 0.4);
|
glColor4f(0.2, 0.2, 0.2, 0.4);
|
||||||
glEnableClientState(GL_VERTEX_ARRAY);
|
glEnableClientState(GL_VERTEX_ARRAY);
|
||||||
glVertexPointer_p(3, $self->bed_grid_lines);
|
|
||||||
|
#glVertexPointer_p(3, $self->bed_grid_lines);
|
||||||
glDrawArrays(GL_LINES, 0, $self->bed_grid_lines->elements / 3);
|
glDrawArrays(GL_LINES, 0, $self->bed_grid_lines->elements / 3);
|
||||||
glDisableClientState(GL_VERTEX_ARRAY);
|
glDisableClientState(GL_VERTEX_ARRAY);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user