office-gobmx/vcl
Tomaž Vajngerl 53d51dbee6 One pass scale, rotate and crop using bilinear filtering and averaging.
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
2012-07-24 22:17:27 +02:00
..
android
aqua/source second fix for WaE 2012-07-23 00:15:54 +02:00
generic Resolves: fdo#31821 always process ZW[N]J in the font regardless of script 2012-07-15 08:25:28 +01:00
headless
inc One pass scale, rotate and crop using bilinear filtering and averaging. 2012-07-24 22:17:27 +02:00
ios/source
null
prj
qa/complex
source One pass scale, rotate and crop using bilinear filtering and averaging. 2012-07-24 22:17:27 +02:00
test
unx the unknwon typo is surprisingly popular 2012-07-16 19:40:58 +02:00
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.