Repository navigation
Conversation
linev
marked this pull request as draft
October 16, 2026 08:59
linev
force-pushed
the
image_lessx
branch
3 times, most recently
from
October 16, 2026 15:14
5c8e9cb to
17383a6
Compare
Test Results 22 files 22 suites 3d 23h 39m 47s ⏱️ For more details on these failures, see this check. Results for commit fff8ed9. ♻️ This comment has been updated with latest results. |
linev
force-pushed
the
image_lessx
branch
5 times, most recently
from
October 20, 2026 08:07
cbe1456 to
fff8ed9
Compare
bellenot
reviewed
Oct 20, 2026
silverweed
reviewed
Oct 21, 2026
Used by TASPaletteEditor to display gradient palette One then can use directly TASImage::Paint to paint created palette This let avoid direct usage of special methods
Let return selected ASVisual as return value of TASImage::InitVisual(). Use batch for first time in Mirror method
It will be place for special TASImage methods which require X11 and gVirtualX functionality. In ROOT7 old deprecated methods will be removed from TASImage itself.
These are TASImage methods which require gVirtualX and X11, therefore they are extracted
Main reason that it uses ASImage and TVirtualX and is main source of gVirtualX dependency in Gpad. Plus new ASImageUtils library now implement extra X11-related and gVirtualX-related methods which need to be used by pad painter. Register plugin "native" for pad painter - as it was forseen from the very beginning. TRootCanvas now links to new library and returns instance of TPadPainter.
Default canvas no longer created automatically but only when obj->Draw() is invoked
These methods were introduced recently and replaced by special TASUtils methods. Only there X11 and gVirtualX should be used
Create TASImage and fill content with gVirtualX pixmap data Use also speicalized X11 method - when runs on correspondent platform Replacement for TASImage::SetImage() functionality
Typically used generate different icons. Adjust methods where pic->SetImage(pixmap, mask) was used. Use std::unique_ptr<TImage> in all touched methods to ensure ownership
Functionality provided in TASUtils and TGWindow classes Method will be removed in ROOT7
It should replace TASImage::PaintImage(), but without selection of paint region. Therefore only full image can be painted Use holder object to preserve created GC context, will be deleted at the end
Also use unique_ptr to avoid memory leaks
Do not call img->PaintImage() when no any part of image visible in currently drawing region.
Use Image::Crop to extract visible part of image. Avoid usage of complex and error-prone img->Paint with too many arguments
Direct method in TImage will be deprectaed
It uses X11 functionality and was replaced by TASUtils::PaintImage() method
Instead calling DrawPixels just implement method, deprecate DrawPixels in gl painter
Functionality everywhere replaced by DrawImage, method will be removed in ROOT7
With start_image_decoding in the TASImage::Crop() created decorder was released wrongly. Instaed `delete[] imdec` one have to use `stop_image_decoding(&imdec);` Also check input parameters - if x or y larger than width or height large negative values converted to unsigned causing segfault or memory allocation problems. Adjust also GetScanline where array not need to be created
It was intermediate solution to avoid creation of extra library Now ASUtils library is exists, therefore all specialized methods used in GUI can be moved there.
Contributor
|
In principle lgtm but I'm thinking we might want to wait until after the branching to merge this (I don't think it's critical that this lands in 6.42) |
Member
Author
I start deprecating methods of |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is final step to prepare
TASImageandTCanvasclasses to be free fromgVirtualXin ROOT7Currently there are several methods which require X11 and
gVirtualXin TASImageCopy such methods to extra library with
TASUtilsclass.Link
libGuiwith this library.All respective
TASImagemethods mark as deprecated for removal in ROOT7.While
TPadPainterneed to use functionality fromTASUtilsclass - create special library forTPadPainter. This was planned from very beginning, but realized only now!Thus one removes major
gVirtualX-dependend code fromGpadlibrary.Provide special "native" plugin to create instance of
TPadPainter.Classical
TRootCanvasreturns instance of TPadPainter as well - so in most of the cases plugin not necessary.Macro
galaxy_image.Cshows user case when plugin is required.In this macro ASImage palette editor is shown, which uses TPad without canvas implementation.