Difference between revisions of "GSoC 2019 Dev Log"

From LibreCAD wiki
Jump to: navigation, search
(Community Bonding Period (May 6th - May 27th))
(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