git.ucc.asn.au
/
ipdf
/
code.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch terrible and branch awful
[ipdf/code.git]
/
src
/
objectrenderer.cpp
diff --git
a/src/objectrenderer.cpp
b/src/objectrenderer.cpp
index
886871c
..
9b84ec2
100644
(file)
--- a/
src/objectrenderer.cpp
+++ b/
src/objectrenderer.cpp
@@
-382,7
+382,14
@@
void BezierRenderer::RenderUsingGPU(unsigned first_obj_id, unsigned last_obj_id)
if (m_indexes.empty()) return;
unsigned first_index = 0;
if (m_indexes.empty()) return;
unsigned first_index = 0;
- while (m_indexes.size() > first_index && m_indexes[first_index] < first_obj_id) first_index ++;
+ while (m_indexes.size() > first_index && m_indexes[first_index] < first_obj_id)
+ {
+ unsigned new_index = (first_index + first_obj_id) / 2;
+ if (new_index < m_indexes.size() && m_indexes[new_index] < first_obj_id)
+ first_index = new_index;
+ else
+ first_index ++;
+ }
unsigned last_index = first_index;
while (m_indexes.size() > last_index && m_indexes[last_index] < last_obj_id) last_index ++;
unsigned last_index = first_index;
while (m_indexes.size() > last_index && m_indexes[last_index] < last_obj_id) last_index ++;
@@
-390,6
+397,12
@@
void BezierRenderer::RenderUsingGPU(unsigned first_obj_id, unsigned last_obj_id)
glUniform1i(m_shader_program.GetUniformLocation("bezier_buffer_texture"), 0);
glUniform1i(m_shader_program.GetUniformLocation("bezier_id_buffer_texture"), 1);
m_ibo.Bind();
glUniform1i(m_shader_program.GetUniformLocation("bezier_buffer_texture"), 0);
glUniform1i(m_shader_program.GetUniformLocation("bezier_id_buffer_texture"), 1);
m_ibo.Bind();
+
+ // To antialias the line... causes SIGFPE because why would anything make sense
+ //glEnable(GL_BLEND);
+ //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ //glEnable(GL_LINE_SMOOTH);
+ //glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
glDrawElements(GL_LINES, (last_index-first_index)*2, GL_UNSIGNED_INT, (GLvoid*)(2*first_index*sizeof(uint32_t)));
}
glDrawElements(GL_LINES, (last_index-first_index)*2, GL_UNSIGNED_INT, (GLvoid*)(2*first_index*sizeof(uint32_t)));
}
@@
-429,7
+442,7
@@
void PathRenderer::RenderUsingCPU(Objects & objects, const View & view, const CP
continue;
for (unsigned b = path.m_start; b <= path.m_end; ++b)
{
continue;
for (unsigned b = path.m_start; b <= path.m_end; ++b)
{
- Rect
& bbounds = objects.bounds[b]
;
+ Rect
bbounds = view.TransformToViewCoords(objects.bounds[b])
;
Bezier & bez = objects.beziers[objects.data_indices[b]];
BezierRenderer::RenderBezierOnCPU(bez,bbounds,view,target,path.m_stroke);
}
Bezier & bez = objects.beziers[objects.data_indices[b]];
BezierRenderer::RenderBezierOnCPU(bez,bbounds,view,target,path.m_stroke);
}
UCC
git Repository :: git.ucc.asn.au