53d51dbee6
With this commit I reintroduce one pass scale, rotate and crop that was located in grfmgr2.cxx (now in Bitmap class) and was used for preparing bitmaps for displaying on screen. By default the combination of two filters is used: bilinear, which is a similar algorithm than the "old" one, but with the same result, and averaging algorithm. Bilinear filtering is used for bitmap enlarging and shrinking till factor 0.6. Below this bilinear gives bad results because of limited sampling. For such cases averaging is used which is a simple algorithm for shrinking. In averaging the algorithm calculates the average of samples which result is the new pixel. Currently both algorithms are not optimised. One pass scale, rotate and crop should only be used for displaying of images. Change-Id: I5a1330b58a7cbb6fde8546e16c3e8c140afca565 |
||
---|---|---|
.. | ||
android | ||
aqua/source | ||
generic | ||
headless | ||
inc | ||
ios/source | ||
null | ||
prj | ||
qa/complex | ||
source | ||
test | ||
unx | ||
win/source | ||
workben | ||
AllLangResTarget_vcl.mk | ||
CustomTarget_afm_hash.mk | ||
CustomTarget_kde4_moc.mk | ||
CustomTarget_kde_moc.mk | ||
CustomTarget_tde_moc.mk | ||
Executable_kdefilepicker.mk | ||
Executable_tdefilepicker.mk | ||
Library_desktop_detector.mk | ||
Library_vcl.mk | ||
Library_vclplug_gen.mk | ||
Library_vclplug_gtk.mk | ||
Library_vclplug_gtk3.mk | ||
Library_vclplug_kde.mk | ||
Library_vclplug_kde4.mk | ||
Library_vclplug_svp.mk | ||
Library_vclplug_tde.mk | ||
Makefile | ||
Module_vcl.mk | ||
Package_inc.mk | ||
README | ||
StaticLibrary_headless.mk | ||
StaticLibrary_vclmain.mk | ||
vcl.android.component | ||
vcl.headless.component | ||
vcl.ios.component | ||
vcl.macosx.component | ||
vcl.unx.component | ||
vcl.windows.component | ||
WinResTarget_vcl.mk | ||
Zip_osxres.mk |
Visual Components Library is responsible for the widgets (windowing, buttons, controls, file-pickers etc.) operating system abstraction, including basic rendering (e.g. the output device). Welcome to the Visual Class Libraries (vcl) code source/ + the main cross-platform chunk of source inc/ + cross-platform abstraction headers / definition vcl/ + external headers generic/ + shared helper code for backends, actually built into vcl headless/ + a backend renderer that draws to bitmaps aqua/ + OS/X backend ios/ + skeleton Android backend win/ + windows backend unx/ + unix specific platform backend code and its' sub-platforms plugadapt/ + pluggable framework to select correct unx backend gtk/ + gtk2 support gtk3/ + gtk3.2+ support kde/ + kde3 support kde4/ + kde4 support generic/ + raw X support How the platform abstraction works + InitVCL calls 'CreateSalInstance' + ths is implemented by the compiled-in platform backend + it stores various bits of global state in the 'SalData' (inc/saldatabasic.hxx) structure but: + the SalInstance vtable is the primary outward facing gateway API for platform backends + It is a factory for: SalFrames, SalVirtualDevices, SalPrinters, Timers, the SolarMutexe, Drag&Drop and other objects, as well as the primary event loop wrapper.