Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

partial Dev dpi system -> do not merge #703

Open
wants to merge 155 commits into
base: develop-1.8
Choose a base branch
from
Open

Conversation

qPCR4vir
Copy link
Collaborator

@qPCR4vir qPCR4vir commented May 26, 2024

BEFORE merge this (please, set IGNORE whitespaces !! those are just for doxy-docs and readability ):

This compile in Ubuntu (in GitHub actions with GCC 13; and in WSL2 with GCC11 using Eclipse/cmake)
In Windows 10 (MSVC2022 and MinGW with GCC 13) - run OK by dpi 96, and ALREADY solve some problems by dpi change !!
But there is a lot to do: see #698, in To Do

  • graphics keep the target dpi: every single graphics need to .set_dpi(new_dpi) after a windows change the dpi and before refresh !!
  • implement a .change_dpi(new_dpi) in widget, widget_base, widget_object and basic_window that apply .set_dpi(new_dpi) to every graphics ??
  • In the implementation of graphics in functions bitblt, paste and stretch check that the src and dst have the same target dpi to decide to use a 'paste' or to do instead 'stretch' before.
    • bitblt,
    • paste and
    • stretch
  • check that every use of graphics all around nana set the correct target dpi before drawing and 'paste' and that only US coordinate are passed to it. (take graphics from api::window_graphics(window wd) ? or take the dpi of wd and pass to the new graphics)
    • animation (set by user? make it clear in api docs?), but animation::impl create one more : framegraph
    • drawing.draw (set by user? make it clear in api docs?)
    • drawer.draw (set by user? make it clear in api docs?) - implement drawing::draw
    • nana::effects / bground_interface
    • nana::element / graph_reference in element_abstract, facade, cite_bground, bground
    • place in splitter_renderer
    • drawer_trigger in base drawer keep a graphics.
    • api:: copy_transparent_background,
    • glass_buffer
    • keyboards counterpart
    • nana::element::bground::draw_graph nana::paint::graphics nana::element::bground::draw_graph::graph
    • nana::paint::graphics nana::widgets::skeletons::text_editor::implementation::inner_counterpart::buffer
    • msgbox ico_ X11
    • nana::paint::graphics nana::place::implement::div_dockpane::indicator_rep::graph
    • paint::graphics temp_graph; in api::content_extent
  • check that in every use of pixel_buffer all around nana only System-side (SS) coordinate are passed to it. If this is not possible or desired, use only US (don't mix US and SS !!) and do a stretch at the end, instead of paste.

#701, #702 and #698 may help to get an idea.

qPCR4vir added 30 commits May 2, 2024 23:27
# Conflicts:
#	include/nana/gui/detail/bedrock.hpp
#	include/nana/gui/drawing.hpp
#	include/nana/gui/screen.hpp
#	include/nana/gui/widgets/button.hpp
#	include/nana/gui/widgets/form.hpp
#	include/nana/gui/widgets/listbox.hpp
#	include/nana/gui/widgets/treebox.hpp
#	include/nana/gui/widgets/widget.hpp
#	include/nana/paint/graphics.hpp
#	include/nana/paint/pixel_buffer.hpp
#	source/detail/platform_abstraction.hpp
#	source/gui/detail/basic_window.cpp
#	source/gui/detail/basic_window.hpp
#	source/gui/detail/bedrock_pi.cpp
#	source/gui/detail/inner_fwd_implement.hpp
#	source/gui/detail/window_manager.cpp
#	source/gui/drawing.cpp
#	source/gui/place.cpp
#	source/gui/place_parts.hpp
#	source/gui/screen.cpp
#	source/gui/widgets/menu.cpp
#	source/gui/widgets/menubar.cpp
#	source/gui/widgets/skeletons/content_view.cpp
#	source/gui/widgets/treebox.cpp
#	source/paint/detail/native_paint_interface.cpp
#	source/paint/graphics.cpp
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.

1 participant