summaryrefslogtreecommitdiff
path: root/basebmp
AgeCommit message (Collapse)AuthorFilesLines
2016-07-20loplugin:nullptr: More NULL -> nullptr automatic rewriteStephan Bergmann1-2/+2
Change-Id: Ie83819e2bcdc5fa160b39296b005ca9a5ff74b1d (cherry picked from commit fb8a3fac5d448451794804a7470be45fa14da453)
2016-06-12Resolves: tdf#94392 huge negative Y causes length exceptionCaolán McNamara1-1/+8
because this rendering stuff is deleted in later versions of LibreOffice and replaced with cairo rendering, just bodge this case to give up and go home. Change-Id: I4e60184b0919dc719edfe223ebb2d8ef684608e8 Reviewed-on: https://gerrit.libreoffice.org/23154 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com> (cherry picked from commit 93772371096b4caf542146e673a44d8d346a09ab) (cherry picked from commit 0c4ee554c04a38ff0c6d2ac22e559baa95dddaf5)
2016-02-02error: left operand of shift expression '(-1 << 4)' is negativeCaolán McNamara1-3/+3
Change-Id: Id87fd266f8e27444cb0984c92921b6700f504042 Reviewed-on: https://gerrit.libreoffice.org/22047 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
2015-12-07Resolves: tdf#96224 don't fiddle around with a separate alpha bufferCaolán McNamara4-25/+2
use a format that supports alpha directly now we can unify the android and linux cases as well and drop the BGRX support Change-Id: I3c845913691d8194822423005d308cfa7ef13ec3 Reviewed-on: https://gerrit.libreoffice.org/20440 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit bc45215ec6e5d508415465ad3f619c3dbe23f7c8)
2015-11-24loplugin:unreffunStephan Bergmann1-23/+0
Change-Id: Ib53eb3da4810202ad60349566cdef74be89418c8
2015-11-24Resolves: tdf#95962 incorrect scanline strideCaolán McNamara9-90/+45
we were reusing the stride of the surface we were cloning, but the new surface has a different underlying size. remove the custom stride argument and just change our stride calculation to use the same scheme that cairo and GDI uses, which remove another platform/drawing-system variable Change-Id: I257dac9757b121642e9ccfde7db0911edc9f3fb1 Reviewed-on: https://gerrit.libreoffice.org/20149 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-11-21loplugin:unusedfields in basebmpNoel Grandin1-9/+1
Change-Id: I1a5da92deef152ef298e2036dbb2fbb65a5e3e7a Reviewed-on: https://gerrit.libreoffice.org/20076 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2015-11-10loplugin:nullptr (automatic rewrite)Stephan Bergmann7-23/+23
Change-Id: Ic8d478162bcdcadd068a22c6344e947da3cd1eab
2015-11-06loplugin:stringconstant: elide explicit ctor usage (automatic rewrite)Stephan Bergmann1-10/+10
Change-Id: Ie0522445bee4403a2ec0d74963cefb31ef2bd70d
2015-10-27loplugin:unusedmethodsNoel Grandin11-304/+0
Change-Id: If703da1323e38df1c5e84d97a7d467dc8e639421 Reviewed-on: https://gerrit.libreoffice.org/19618 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2015-10-22Work around cid#1328486Stephan Bergmann1-3/+4
...claiming that "right shifting v by more than 15 bits always yields zero," apparently diagnosing an instanatiation of the template for T = unsigned short. Change-Id: I7c210ff17e4aef8f0e703cc30518f3420e67e7c1
2015-10-16-fsanitize=shift-exponentStephan Bergmann1-1/+11
Through test code added with d30f5bc3e65463f28c3087acad6f88e12d60e53b "lok::Document::paintTile: fix non-rectangular tiles wrt. transparency," CppunitTest_desktop_lib started to exhibit > basebmp/inc/metafunctions.hxx:210:26: runtime error: shift exponent 32 is too large for 32-bit type 'unsigned int' > unsigned int basebmp::shiftRight<unsigned int>(unsigned int, int) basebmp/inc/metafunctions.hxx:210:26 > basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 4278190080u, 16711680u, 65280u, true>::operator()(unsigned int) const basebmp/inc/rgbmaskpixelformats.hxx:123:25 > basebmp::Color basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 4278190080u, 16711680u, 65280u, true>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 255u, 4278190080u, 16711680u, 65280u, true> >::operator()<basebmp::PixelIterator<unsigned int> >(basebmp::PixelIterator<unsigned int> const&) const basebmp/inc/accessoradapters.hxx:115:16 > basebmp::(anonymous namespace)::BitmapRenderer<basebmp::PixelIterator<unsigned int>, basebmp::StandardAccessor<unsigned int>, basebmp::AccessorSelector<basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 4278190080u, 16711680u, 65280u, true>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 255u, 4278190080u, 16711680u, 65280u, true> >, basebmp::StdMasks>::getPixel_i(basegfx::B2IPoint const&) basebmp/source/bitmapdevice.cxx:472:20 > basebmp::BitmapDevice::getPixel(basegfx::B2IPoint const&) basebmp/source/bitmapdevice.cxx:1289:16 > basebmp::Color basebmp::GenericColorImageAccessor::operator()<vigra::IteratorAdaptor<vigra::Diff2DConstRowIteratorPolicy<vigra::Diff2D> > >(vigra::IteratorAdaptor<vigra::Diff2DConstRowIteratorPolicy<vigra::Diff2D> > const&) const basebmp/inc/genericcolorimageaccessor.hxx:54:18 > void vigra::copyLine<vigra::IteratorAdaptor<vigra::Diff2DConstRowIteratorPolicy<vigra::Diff2D> >, basebmp::GenericColorImageAccessor, unsigned int*, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > >(vigra::IteratorAdaptor<vigra::Diff2DConstRowIteratorPolicy<vigra::Diff2D> >, vigra::IteratorAdaptor<vigra::Diff2DConstRowIteratorPolicy<vigra::Diff2D> >, basebmp::GenericColorImageAccessor, unsigned int*, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> >) workdir/UnpackedTarball/vigra/include/vigra/copyimage.hxx:65:18 > void vigra::copyImage<vigra::Diff2D, basebmp::GenericColorImageAccessor, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > >(vigra::Diff2D, vigra::Diff2D, basebmp::GenericColorImageAccessor, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> >) workdir/UnpackedTarball/vigra/include/vigra/copyimage.hxx:158:9 > void basebmp::scaleImage<vigra::Diff2D, basebmp::GenericColorImageAccessor, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > >(vigra::Diff2D, vigra::Diff2D, basebmp::GenericColorImageAccessor, basebmp::PixelIterator<unsigned int>, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> >, bool) basebmp/inc/scaleimage.hxx:133:9 > void basebmp::scaleImage<vigra::Diff2D, basebmp::GenericColorImageAccessor, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > >(vigra::triple<vigra::Diff2D, vigra::Diff2D, basebmp::GenericColorImageAccessor> const&, vigra::triple<basebmp::PixelIterator<unsigned int>, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > > const&, bool) basebmp/inc/scaleimage.hxx:180:5 > void basebmp::(anonymous namespace)::BitmapRenderer<basebmp::PixelIterator<unsigned int>, basebmp::StandardAccessor<unsigned int>, basebmp::AccessorSelector<basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> >, basebmp::StdMasks>::implDrawBitmapGeneric<basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > >(std::shared_ptr<basebmp::BitmapDevice> const&, basegfx::B2IBox const&, basegfx::B2IBox const&, basebmp::PixelIterator<unsigned int> const&, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > const&) basebmp/source/bitmapdevice.cxx:739:13 > basebmp::(anonymous namespace)::BitmapRenderer<basebmp::PixelIterator<unsigned int>, basebmp::StandardAccessor<unsigned int>, basebmp::AccessorSelector<basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> >, basebmp::StdMasks>::drawBitmap_i(std::shared_ptr<basebmp::BitmapDevice> const&, basegfx::B2IBox const&, basegfx::B2IBox const&, basebmp::DrawMode) basebmp/source/bitmapdevice.cxx:827:21 > basebmp::BitmapDevice::drawBitmap(std::shared_ptr<basebmp::BitmapDevice> const&, basegfx::B2IBox const&, basegfx::B2IBox const&, basebmp::DrawMode) basebmp/source/bitmapdevice.cxx:1562:9 > basebmp::BitmapDevice::drawBitmap(std::shared_ptr<basebmp::BitmapDevice> const&, basegfx::B2IBox const&, basegfx::B2IBox const&, basebmp::DrawMode, std::shared_ptr<basebmp::BitmapDevice> const&) basebmp/source/bitmapdevice.cxx:1574:9 > SvpSalGraphics::copyBits(SalTwoRect const&, SalGraphics*) vcl/headless/svpgdi.cxx:687:9 > SalGraphics::CopyBits(SalTwoRect const&, SalGraphics*, OutputDevice const*, OutputDevice const*) vcl/source/gdi/salgdilayout.cxx:589:9 > OutputDevice::GetBitmap(Point const&, Size const&) const vcl/source/outdev/bitmap.cxx:443:29 > OutputDevice::GetBitmapEx(Point const&, Size const&) const vcl/source/outdev/bitmap.cxx:487:25 > OutputDevice::DrawOutDev(Point const&, Size const&, Point const&, Size const&, OutputDevice const&) vcl/source/outdev/outdev.cxx:587:47 > sdr::overlay::OverlayManagerBuffered::ImpSaveBackground(vcl::Region const&, OutputDevice*) svx/source/sdr/overlay/overlaymanagerbuffered.cxx:198:17 > sdr::overlay::OverlayManagerBuffered::completeRedraw(vcl::Region const&, OutputDevice*) const svx/source/sdr/overlay/overlaymanagerbuffered.cxx:418:17 > (anonymous namespace)::RenderContextGuard::~RenderContextGuard() sw/source/core/view/viewsh.cxx:1714:21 > SwViewShell::Paint(OutputDevice&, Rectangle const&) sw/source/core/view/viewsh.cxx:1856:1 > SwCrsrShell::Paint(OutputDevice&, Rectangle const&) sw/source/core/crsr/crsrsh.cxx:1278:5 > SwViewShell::PaintTile(VirtualDevice&, int, int, int, int, long, long) sw/source/core/view/viewsh.cxx:1901:5 > SwXTextDocument::paintTile(VirtualDevice&, int, int, int, int, long, long) sw/source/uibase/uno/unotxdoc.cxx:3139:5 > non-virtual thunk to SwXTextDocument::paintTile(VirtualDevice&, int, int, int, int, long, long) sw/source/uibase/uno/unotxdoc.cxx:3132:23 > doc_paintTile desktop/source/lib/init.cxx:784:5 > DesktopLOKTest::testPaintTile() desktop/qa/desktop_lib/test_desktop_lib.cxx:299:5 Change-Id: Iadda5d7bb3f7f15706d16b813e11e6d145818f6c
2015-10-16Fix type of nPixelStephan Bergmann1-1/+1
Change-Id: I2f59600318b345dce6bf00c30bb5e728c0fbebae
2015-10-16Use CPPUNIT_ASSERT_EQUAL for better failure reportsStephan Bergmann1-84/+114
Change-Id: If493763369581338325601edba2c12f96367f515
2015-10-12Replace "SAL_OVERRIDE" with "override" in LIBO_INTERNAL_ONLY codeStephan Bergmann8-28/+28
Change-Id: I2ea407acd763ef2d7dae2d3b8f32525523ac8274
2015-10-01basebmp: fix Android buildMiklos Vajna1-0/+5
Change-Id: Ie84f41ab8ad032de5a31e4f566ec5b2358adcf37
2015-10-01basebmp: these headers are not used from other modulesMiklos Vajna30-19/+5483
Change-Id: I88c5c341b88a6ea62730e5d3dd1962365c531f70
2015-09-28basebmp: -headless -> --headlessMiklos Vajna1-1/+1
Change-Id: Iedabcbd3c2582472f56f003ab30298f656f2ac46
2015-09-13boost->stdCaolán McNamara1-18/+18
Change-Id: I9b4f884c6313a53fea543ea6f93175205351ad14 Reviewed-on: https://gerrit.libreoffice.org/18517 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-07-06loplugin:unusedmethods basebmpNoel Grandin1-7/+0
Change-Id: I9e89fea4e94a91edbbe355780c2a12d6e6cb6e4a Reviewed-on: https://gerrit.libreoffice.org/16728 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2015-07-04bmpmasktest was little-endian onlyCaolán McNamara1-3/+3
Change-Id: Icf362281c54509211b08c8bf5e29a0e31d9eb835
2015-06-20tdf#92194 - fix headless masking operations in vcl.Michael Meeks1-2/+64
These were causing horrible rendering artifacts for all manner of headless rendering across Android & Online. A very simple fix in vcl, plus a set of tests. Change-Id: Ib261c0ea29d79ee6415e164c0b9b098efb52458b
2015-06-04convert basegfx::FillRule to scoped enumNoel Grandin1-1/+1
and drop unused NONZERO_WINDING_NUMBER value Change-Id: If2a8f01934796eaf9a343113387b775fd169ccb9
2015-06-04convert basebmp::Format to scoped enumNoel Grandin10-107/+108
Change-Id: I6eb213d6dcf387936967271fba9e2de3879ef479
2015-06-04convert DrawMode to scoped enumNoel Grandin9-108/+108
Change-Id: Ie4a7705cc3d042d08178e562a2c2ffaf0be3810f
2015-06-01remove unused BASEBMP_NO_NESTED_TEMPLATE_PARAMETERNoel Grandin1-21/+0
Change-Id: I631b5fa984f5a59619aef62e38a503239989b253
2015-04-27More loplugin:simplifyboolStephan Bergmann1-1/+1
Change-Id: Ibf09e039fe3947ce68fa2a784ca81b6ff7b13d82
2015-04-22Various #include <sal/log.hxx> fixupsStephan Bergmann1-0/+1
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it. Cleaned up some, but something like grep -FwL sal/log.hxx $(git grep -Elw \ 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF') -- \*.cxx) shows lots more files that potentially need fixing before the include can be removed from rtl/string.hxx and rtl/ustring.hxx. Change-Id: Ibf033363e83d37851776f392dc0b077381cd8b90
2015-03-31Reduce to static_cast any reinterpret_cast from void pointersStephan Bergmann1-1/+1
Change-Id: I88949a300ebff7c0c37ec147ca50f08695db7775
2015-03-29Clean up template-parameter-dependent C-style castsStephan Bergmann1-1/+1
Change-Id: Ia1ab134a0afbeeb3ae40264bd4233a47df26b734
2015-03-27loplugin:staticfunctionNoel Grandin1-2/+2
Change-Id: I982ba552579019e4902ae59fddf14a6b34ba5954
2015-03-24loplugin:constantfunction: variousNoel Grandin1-5/+0
Change-Id: I6eddda9f4b31c7ce413c328b6a857a81bd222eed
2015-03-23drawing a vertical/horizontal line does not really damage 0 width/height areasCaolán McNamara1-2/+18
so follow the same logic as drawPixel which equally does not damage a 0 width and height point Change-Id: Ie2c400caf1ad2e3a874f92c6f90f5f071f9c95e3
2015-02-25rename BGRU to BGRXCaolán McNamara2-8/+8
Change-Id: I0f28b986542b4d30c0a2cb75e15fb258af98e9cd
2015-02-25rename BGRX32 etc to BGRA32Caolán McNamara1-4/+4
Change-Id: I60e1951fe56e4b00ee0caa142eb0e19dcb6d12b7
2015-02-25give basebmp a cairo compatible 24 bit surfaceCaolán McNamara2-3/+8
where each unit is actually 32bit with unused upper 8bit. Change-Id: I5c406cebe406d2db6fda73d744dfd22a99b80ba3
2015-02-24make ScanlineStride an argument to createBitmapDeviceCaolán McNamara9-46/+91
so we could create bitmap devices that have the same stride that cairo expects, provide getBitmapDeviceStrideForWidth to get a default value Change-Id: I7ecc6f54a734b3f6bed59c699ac3b482c4ad7c47
2015-01-20Some more loplugin:cstylecast: basebmpStephan Bergmann1-1/+1
Change-Id: I7e1e37110b9bd53a5eae543c854cc2c434a6b678
2015-01-13basebmap: 5e4a7a95027d979b3bdd729d7ebe950da1129b2b missed COM checkMichael Stahl1-0/+2
Change-Id: I6850d69089c4d0db06a22e14888f089406980c2c
2015-01-13Fix number of sections exceeded object file format limitDavid Ostrovsky1-0/+13
Change-Id: If81ebef14696c856374967e984138fbd25218a8c Reviewed-on: https://gerrit.libreoffice.org/13879 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
2014-10-14basebmp: accelerated method to create a clipping device.Michael Meeks1-4/+23
This was some staggering proportion of tiled rendering documents with complex clipping; it seems 'clear' is not what memset is for 1bit clip masks. Change-Id: I9142ffb7d7016603feb7782d6f03b9992b9494e3
2014-08-28Fixed some CppunitTest namesStephan Bergmann1-6/+6
Change-Id: I57b039c7114c03944e8eaba9ca1bb81da563640a
2014-08-28keep nScanlineStride number saneCaolán McNamara1-5/+8
bff + valgrind Change-Id: I255a052251a6a0f1e4005b9cfb3b6ce00c6653ee
2014-07-03Remove empty gb_Module_add_targets,basebmp,Matúš Kukan1-3/+0
Change-Id: I2e05aeb16707f8e8e17e5379f4cfa01a0c431e14
2014-06-02fdo#68849: Add header guards to all include filesJens Carl1-0/+5
added header guards for directories basebmp/, chart2/, cppuhelper/, include/test/, io/test/, sax/test, shell/, writerfilter/, and xmlhelp/ Change-Id: I0e29a9b75c26d71f58aa98986b52f6d3b46015a6 Reviewed-on: https://gerrit.libreoffice.org/9615 Reviewed-by: Thomas Arnhold <thomas@arnhold.org> Tested-by: Thomas Arnhold <thomas@arnhold.org>
2014-04-19fixincludeguards.sh: basebmpThomas Arnhold1-3/+3
2014-04-19Remove gcc3 workaround for bug long since fixed in gccChris Sherlock1-4/+2
Change-Id: Ieb1c41481a79ab8713663caee3d5373640ff0ec8 Reviewed-on: https://gerrit.libreoffice.org/9102 Tested-by: LibreOffice gerrit bot <gerrit@libreoffice.org> Tested-by: Chris Sherlock <chris.sherlock79@gmail.com> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2014-04-09Missing includeStephan Bergmann1-0/+2
Change-Id: I7c3631fc8154daffa4236a16c761df85eba34de8
2014-03-29typo: optimisation -> optimizationThomas Arnhold1-1/+1
2014-03-26First batch of adding SAL_OVERRRIDE to overriding function declarationsStephan Bergmann8-29/+29
...mostly done with a rewriting Clang plugin, with just some manual tweaking necessary to fix poor macro usage. Change-Id: I71fa20213e86be10de332ece0aa273239df7b61a