Skip to content

Conversation

@HakkyuKim
Copy link

@HakkyuKim HakkyuKim commented Oct 28, 2021

The use case for setting window geometry at runtime is explained here (internal repo).

Test app: https://github.com/HakkyuKim/flutter_tizen_window_resize_test_app

TODO

  • Disable for evas_gl renderer.
  • Investigate why it works for TV and wearable emulators but not for mobile.
    Can't figure out why, decided not to support in this PR since it's not important compared to other tasks.
  • Investigate why x and y position are not set correctly.
    Must also call ecore_wl2_window_position_set.
  • Test with rotation.
    I'll write a "remaining issues" in the issue tab.
  • Test with top_level window, Support top-layer mode #191.
  • Formatting.
  • Check dynamic type of TizenRenderer in WindowChannel::HandleMethodCall(). Use conditional compilation.

@HakkyuKim
Copy link
Author

HakkyuKim commented Oct 28, 2021

Resizing the window for evas_gl is not displaying the same as ecore_wl2 and I can't figure out why. The engines used in the following images are compiled using the same logic with different TizenRenderer:

Wearable

TizenRendererEcoreWl2

TizenRendererEvasGL

TV

TizenRendererEcoreWl2

TizenRendererEvasGL

@bbrto21 @xiaowei-guan Would you happen to have any information on this?

@HakkyuKim HakkyuKim marked this pull request as ready for review November 1, 2021 06:33
@HakkyuKim HakkyuKim marked this pull request as draft November 2, 2021 03:15
@HakkyuKim HakkyuKim marked this pull request as ready for review November 2, 2021 14:14
@bwikbs
Copy link
Member

bwikbs commented Nov 3, 2021

Just curious... why did you disable at x64? (Is this for evas issue? Same result on x64?)
I think it would be good to include a unit test..

@HakkyuKim
Copy link
Author

Just curious... why did you disable at x64? (Is this for evas issue? Same result on x64?) I think it would be good to include a unit test..

My understanding was that you could only test apis that are purely EFL on x64, the current implementation calls tizen only apis; ecore_wl2_window_position_set and ecore_wl2_egl_window_resize_with_rotation. Or am I mistaken?

Copy link
Member

@swift-kim swift-kim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise looks good to me!

@HakkyuKim
Copy link
Author

Otherwise looks good to me!

Done! Thanks for the review:)

Copy link
Member

@bwikbs bwikbs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My understanding was that you could only test apis that are purely EFL on x64, the current implementation calls tizen only apis; ecore_wl2_window_position_set and ecore_wl2_egl_window_resize_with_rotation. Or am I mistaken?

First , it's not really important. I just asked....
I think I changed the window geometry in x64 before.. and we could only test the window channel operation (Not real behavior!) at unit test.. I just wondered why it was blocked at this time. Now I understand through your response.

Thanks! It's pretty cool! 👍

@bbrto21
Copy link

bbrto21 commented Nov 3, 2021

@bbrto21 @xiaowei-guan Would you happen to have any information on this?

I'm working on another task, so I can't afford to look into this. Sorry for the late reply.

@HakkyuKim
Copy link
Author

My understanding was that you could only test apis that are purely EFL on x64, the current implementation calls tizen only apis; ecore_wl2_window_position_set and ecore_wl2_egl_window_resize_with_rotation. Or am I mistaken?

First , it's not really important. I just asked.... I think I changed the window geometry in x64 before.. and we could only test the window channel operation (Not real behavior!) at unit test.. I just wondered why it was blocked at this time. Now I understand through your response.

Thanks! It's pretty cool! +1

I was double checking if I was correct about the __X64_SHELL__ define, I appreciate the review. I haven't planned adding unit test at the moment, maybe some other time.

@swift-kim
Copy link
Member

Please resolve conflicts.

HakkyuKim and others added 7 commits November 9, 2021 13:01
Also:
- remove unused include
- sort channels alphabetically
- sort channel initializations alphabetically
Also:
- call `result->NotImplemented()` instead of `result->Error()`
on unsupported window resizing.
Also:
- Add `explicit` to `WindowChannel` constructor.
- Disable `OnGeometryChange` for evas_gl.
- Remove unused include.
@HakkyuKim
Copy link
Author

Please resolve conflicts.

Done, merging would've been better, the conflict was:

-event.width = static_cast<size_t>(width);
-event.height = static_cast<size_t>(height);
+event.width = width;
+event.height = height;

@swift-kim swift-kim merged commit 11625dd into flutter-tizen:flutter-2.5.1-tizen Nov 9, 2021
swift-kim pushed a commit that referenced this pull request Nov 14, 2021
* Add window channel

* Obtain real screen size

* Rename some namings

Also:
- remove unused include
- sort channels alphabetically
- sort channel initializations alphabetically

* Move SetGeometry to TizenRender to remove macros

Also:
- call `result->NotImplemented()` instead of `result->Error()`
on unsupported window resizing.

* Finish resolving previous conflict

* Suppress unused private field warning

Also:
- Add `explicit` to `WindowChannel` constructor.
- Disable `OnGeometryChange` for evas_gl.
- Remove unused include.

* Explicitly initialize with zeros
swift-kim pushed a commit that referenced this pull request Dec 9, 2021
* Add window channel

* Obtain real screen size

* Rename some namings

Also:
- remove unused include
- sort channels alphabetically
- sort channel initializations alphabetically

* Move SetGeometry to TizenRender to remove macros

Also:
- call `result->NotImplemented()` instead of `result->Error()`
on unsupported window resizing.

* Finish resolving previous conflict

* Suppress unused private field warning

Also:
- Add `explicit` to `WindowChannel` constructor.
- Disable `OnGeometryChange` for evas_gl.
- Remove unused include.

* Explicitly initialize with zeros
swift-kim pushed a commit that referenced this pull request Dec 17, 2021
* Add window channel

* Obtain real screen size

* Rename some namings

Also:
- remove unused include
- sort channels alphabetically
- sort channel initializations alphabetically

* Move SetGeometry to TizenRender to remove macros

Also:
- call `result->NotImplemented()` instead of `result->Error()`
on unsupported window resizing.

* Finish resolving previous conflict

* Suppress unused private field warning

Also:
- Add `explicit` to `WindowChannel` constructor.
- Disable `OnGeometryChange` for evas_gl.
- Remove unused include.

* Explicitly initialize with zeros
swift-kim pushed a commit that referenced this pull request Feb 7, 2022
* Add window channel

* Obtain real screen size

* Rename some namings

Also:
- remove unused include
- sort channels alphabetically
- sort channel initializations alphabetically

* Move SetGeometry to TizenRender to remove macros

Also:
- call `result->NotImplemented()` instead of `result->Error()`
on unsupported window resizing.

* Finish resolving previous conflict

* Suppress unused private field warning

Also:
- Add `explicit` to `WindowChannel` constructor.
- Disable `OnGeometryChange` for evas_gl.
- Remove unused include.

* Explicitly initialize with zeros
swift-kim pushed a commit that referenced this pull request Feb 11, 2022
* Add window channel

* Obtain real screen size

* Rename some namings

Also:
- remove unused include
- sort channels alphabetically
- sort channel initializations alphabetically

* Move SetGeometry to TizenRender to remove macros

Also:
- call `result->NotImplemented()` instead of `result->Error()`
on unsupported window resizing.

* Finish resolving previous conflict

* Suppress unused private field warning

Also:
- Add `explicit` to `WindowChannel` constructor.
- Disable `OnGeometryChange` for evas_gl.
- Remove unused include.

* Explicitly initialize with zeros
swift-kim pushed a commit that referenced this pull request May 12, 2022
* Add window channel

* Obtain real screen size

* Rename some namings

Also:
- remove unused include
- sort channels alphabetically
- sort channel initializations alphabetically

* Move SetGeometry to TizenRender to remove macros

Also:
- call `result->NotImplemented()` instead of `result->Error()`
on unsupported window resizing.

* Finish resolving previous conflict

* Suppress unused private field warning

Also:
- Add `explicit` to `WindowChannel` constructor.
- Disable `OnGeometryChange` for evas_gl.
- Remove unused include.

* Explicitly initialize with zeros
swift-kim pushed a commit that referenced this pull request Aug 5, 2022
* Add window channel

* Obtain real screen size

* Rename some namings

Also:
- remove unused include
- sort channels alphabetically
- sort channel initializations alphabetically

* Move SetGeometry to TizenRender to remove macros

Also:
- call `result->NotImplemented()` instead of `result->Error()`
on unsupported window resizing.

* Finish resolving previous conflict

* Suppress unused private field warning

Also:
- Add `explicit` to `WindowChannel` constructor.
- Disable `OnGeometryChange` for evas_gl.
- Remove unused include.

* Explicitly initialize with zeros
swift-kim pushed a commit that referenced this pull request Sep 1, 2022
* Add window channel

* Obtain real screen size

* Rename some namings

Also:
- remove unused include
- sort channels alphabetically
- sort channel initializations alphabetically

* Move SetGeometry to TizenRender to remove macros

Also:
- call `result->NotImplemented()` instead of `result->Error()`
on unsupported window resizing.

* Finish resolving previous conflict

* Suppress unused private field warning

Also:
- Add `explicit` to `WindowChannel` constructor.
- Disable `OnGeometryChange` for evas_gl.
- Remove unused include.

* Explicitly initialize with zeros
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants