We have moved to https://dokuwiki.librecad.org/
Lots of content was already moved to the new wiki, but there is still work to do. If you want to contribute, please register a new account at https://dokuwiki.librecad.org/
This wiki will be kept for a while to keep search engine results valid. Moved sites may be deleted here in future.
Difference between revisions of "GSoC 2019 Dev Log"
Kartik Kumar (Talk | contribs) (→Community Bonding Period (May 6th - May 27th)) |
Kartik Kumar (Talk | contribs) (→Coding Period Phase 1 (May 27th - June 28th)) |
||
Line 32: | Line 32: | ||
> little research work left on gradient rendering and line patterns and continuing work to complete the painter implementation | > little research work left on gradient rendering and line patterns and continuing work to complete the painter implementation | ||
+ | |||
+ | == '''Coding Period Phase 1 (May 27th - June 28th)''' == | ||
+ | '''May 27th''' | ||
+ | |||
+ | > I started with reviewing the partially implemented opengl painter and used only one painter instance with each viewer (which was earlier 3 instances for background,foreground and document using cairo) | ||
+ | |||
+ | > making the painter instance creation more robust starting from UI | ||
+ | |||
+ | '''May 28th''' | ||
+ | |||
+ | > Started with testing the drawables rendering with opengl painter , drawables doest require caching | ||
+ | |||
+ | > Connect the signal(drawevent) and slot(grid's draw() code) , Tested the grid drawing calls with the opengl painter | ||
+ | |||
+ | TODO: Debug later -- the zooming out of grid misses some lines | ||
+ | |||
+ | '''May 29th''' | ||
+ | |||
+ | > Connect the lccursor with drawevent signal , Tested the cursor drawing calls with the opengl painter | ||
+ | |||
+ | '''May 30th''' | ||
+ | |||
+ | > Connected the tempentities with the signal, Now the entities (during drawing/editing process) can also be rendered | ||
+ | |||
+ | > Connected the dragpoints with the signal, Now the entities can be edited using dragpoints | ||
+ | |||
+ | > Checked the editing options correct working like- translate, rotate, scale , copy etc | ||
+ | |||
+ | '''May 31st''' | ||
+ | |||
+ | > Found some errors in cursor during high zoom, debugging the lccursor | ||
+ | |||
+ | > Trying to get the perfect viewport with error free pan and zoom so that later the new entities can be seen while testing |
Revision as of 19:02, 31 May 2019
Community Bonding Period (May 6th - May 27th)
> During Community Bonding Period i continued doing more research work for the LibreCAD OpenGL rendering project.
> Linked a partial implemented OpenGL painter with the LibreCAD 3 which uses BufferObjects for rendering
> Implemented basic facilities like pan, zoom
> I started with finding the connections of rendering functions of drawables,drawentities etc.
> Implement and connect the drawables like grid,cursor, origin pointer etc.
> Found connection of tempentities , drawentities
> Tried and check ways of Text Rendering with OpenGL painter( basic ttf type / MSDF type )
> Found place for the caching the saved entities.
> Implemented few more functions in opengl painter (analogous to Cairo) which does Matrix/Vector/Coordinate manipulations(manually with GLM)
> Deciding the basic complete layout of OpenGL painter and found possible ways of complete implementation : https://github.com/sckorpio/LibreCAD_3
> I created blog for the development log on LibreCAD blog : https://blog.librecad.org/tag/google-summer-of-code-gsoc-2019/
TODO:
> Finalize and implement basic gl_entity class which could hold all type of possible entities and render them
> Create a gl_pack class which could hold a number of gl_entities to cache and render complex entities (like dimensions)
> Decide which text rendering should be used (basic ttf or MSDF or both..)
> little research work left on gradient rendering and line patterns and continuing work to complete the painter implementation
Coding Period Phase 1 (May 27th - June 28th)
May 27th
> I started with reviewing the partially implemented opengl painter and used only one painter instance with each viewer (which was earlier 3 instances for background,foreground and document using cairo)
> making the painter instance creation more robust starting from UI
May 28th
> Started with testing the drawables rendering with opengl painter , drawables doest require caching
> Connect the signal(drawevent) and slot(grid's draw() code) , Tested the grid drawing calls with the opengl painter
TODO: Debug later -- the zooming out of grid misses some lines
May 29th
> Connect the lccursor with drawevent signal , Tested the cursor drawing calls with the opengl painter
May 30th
> Connected the tempentities with the signal, Now the entities (during drawing/editing process) can also be rendered
> Connected the dragpoints with the signal, Now the entities can be edited using dragpoints
> Checked the editing options correct working like- translate, rotate, scale , copy etc
May 31st
> Found some errors in cursor during high zoom, debugging the lccursor
> Trying to get the perfect viewport with error free pan and zoom so that later the new entities can be seen while testing