Week #2: Feature additions in UI and IO modules
antrikshmisri
Published: 06/13/2021
What did I do this week?
This week I had to work on 3 PR's as well as some documentation. I really enjoyed this week's work as the tasks were really interesting. The aim for these PR's were to actually add a couple of features in the UI as well as the IO module, which includes, adding support for border in
Panel2D
, adding support for network/URL images in
load_image
method in IO module, adding resizing
Panel2D
from bottom right corner, completing the document with layout solutions provided by Unity/Unreal engine. Below are the PR's that I worked on:-
- Added support for URL image in load_image: The load_image of IO module didn't support network /URL images, so I made this PR to add support for the same.
- Added support for border in Panel2D: This PR was made in association with the Card2D PR. This PR adds support for border in Panel2D. The borders are individually customizable just like in CSS. This PR needs a little tweaking in terms of getters/setters. The same support needs to be added in Rectangle2D
- Complete the document with layout solutions provided by Unity/Unreal engine: Completed the document with layout solutions provided by Unity/Unreal Engine
- Behind the scenes I also worked on a Watcher class for the UI elements. The purpose of the watcher would be to monitor the UI elements for any changes after they have been added to the scene. A PR should be up by 2-3 days.
Did I get stuck anywhere?
I had a minor issue with the tests for the IO module. When running the tests for IO module using pytest 5.0.0 resulted in Window fatal error, this was a sideeffect of pytest 5.0.0 wherein support for faulthandler was added. This error was suppressed by using certain flags while running the tests.
What is coming up next?
Next week I would probably work on adapting the GridLayout with UI elements, some other tasks that will be decided in the next meeting.
See you guys next week!
View Blog Post
Week #1: Welcome to my weekly Blogs!
antrikshmisri
Published: 06/08/2021
Hi everyone! I am Antriksh Misri. I am a Pre-Final year student at MIT Pune. This summer, I will be working on Layout Management under FURY's UI module as my primary goal. This includes addition of different classes under Layout Management to provide different layouts/arrangements in which the UI elements can be arranged. As my stretch goals, I will be working on a couple of UI components for FURY’s UI module. These 2D and 3D components will be sci-fi like as seen in the movie “Guardians of The Galaxy”. My objective for the stretch goals would be to develop these UI components with their respective test and tutorials such that it adds on to the UI module of FURY and doesn’t hinder existing functionalities/performance.
What did I do this week?
During the community bonding period I got to know the mentors as well as other participants. We had an introductory meeting, in which the rules and code of conduct was explained. Also, my proposal was reviewed and modified slightly. Initially, I had to develop UI elements as my primary goal and I had to work on layout management as my stretch goals but the tasks were switched. Now I have to work on Layout Management as my primary task and develop UI in the stretch goals period. I also started coding before hand to actually make use of this free period. I worked on different PR's which are described below:-
- Added tests for Layout module: The layout module of FURY didn't had any tests implemented, so I made this PR to add tests for
Layout
& GridLayout
class.
- Complied available classes for Layout Management in different libraries: In order to decide the behavior and functionality of Layout Management in FURY, I made a document that has all classes available in different libraries to manage layout of UI elements. This document also contains code snippets for these classes
- Resize Panel2D UI on WindowResizeEvent: Currently, the
Panel2D
UI is not responsive to window resizing which means its size is static. In this branch I implemented this feature.
Did I get stuck anywhere?
I got stuck at Panel resizing feature. I couldn't figure out how to propagate the window invoked events to a specific actor. Fortunately, the mentors helped me to solve this problem by using partial from functools
What is coming up next?
The next tasks will be decided in this week's open meeting with the mentors.
See you guys next week!
View Blog Post