diff --git a/haiku-apps/becasso/becasso-2.0.recipe b/haiku-apps/becasso/becasso-2.0.recipe index f1fbd5026..a4e236358 100644 --- a/haiku-apps/becasso/becasso-2.0.recipe +++ b/haiku-apps/becasso/becasso-2.0.recipe @@ -9,12 +9,14 @@ HOMEPAGE="https://github.com/orangejua/Becasso" COPYRIGHT="1997-2003 Sum Software 2013 Julian Harnath" LICENSE="MIT" -REVISION="1" +REVISION="2" COMMIT="42f736e5a936947e58085ad97e794b2a056fd85a" SOURCE_URI="https://github.com/HaikuArchives/Becasso/archive/$COMMIT.zip" CHECKSUM_SHA256="20a7ede7f3d4befac25e2af4a70b64f068bc2eda0379a75279b7904577677eed" SOURCE_DIR="Becasso-$COMMIT" -ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +PATCHES="becasso-$portVersion.patchset" + +ARCHITECTURES="x86_gcc2 ?x86 x86_64" PROVIDES=" becasso = $portVersion diff --git a/haiku-apps/becasso/patches/becasso-2.0.patchset b/haiku-apps/becasso/patches/becasso-2.0.patchset new file mode 100644 index 000000000..1aab833ca --- /dev/null +++ b/haiku-apps/becasso/patches/becasso-2.0.patchset @@ -0,0 +1,1068 @@ +From aac227cdfe1d8038cacc423706d0c29ca380c794 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sun, 22 Jan 2017 13:55:08 +0100 +Subject: build on x86_64. + +* caveats: x86 asm can't be easily ported, only stubs now. + +diff --git a/source/AboutView.cpp b/source/AboutView.cpp +index 887af6f..0da560a 100644 +--- a/source/AboutView.cpp ++++ b/source/AboutView.cpp +@@ -2,6 +2,7 @@ + #include "Colors.h" + #include + #include ++#include + #include "Settings.h" + + SAboutView::SAboutView (BRect rect, BBitmap *becasso, BBitmap *sum, bool startup) +diff --git a/source/AttribBrush.cpp b/source/AttribBrush.cpp +index 063ae36..959f0be 100644 +--- a/source/AttribBrush.cpp ++++ b/source/AttribBrush.cpp +@@ -3,8 +3,9 @@ + #include + #include + #include +-#include + #include ++#include ++#include + #include "Settings.h" + + static property_info prop_list[] = { +@@ -369,4 +370,4 @@ void AttribBrush::MessageReceived (BMessage *msg) + inherited::MessageReceived (msg); + } + bv->Invalidate(); +-} +\ No newline at end of file ++} +diff --git a/source/AttribClone.cpp b/source/AttribClone.cpp +index 07781e1..7781371 100644 +--- a/source/AttribClone.cpp ++++ b/source/AttribClone.cpp +@@ -3,8 +3,9 @@ + #include + #include + #include +-#include ++#include + #include ++#include + #include "Settings.h" + + static property_info prop_list[] = { +@@ -369,4 +370,4 @@ void AttribClone::MessageReceived (BMessage *msg) + inherited::MessageReceived (msg); + } + bv->Invalidate(); +-} +\ No newline at end of file ++} +diff --git a/source/AttribPolyblob.cpp b/source/AttribPolyblob.cpp +index bade3cd..1bba62f 100644 +--- a/source/AttribPolyblob.cpp ++++ b/source/AttribPolyblob.cpp +@@ -24,27 +24,30 @@ AttribPolyblob::AttribPolyblob () + type->SetLabel (lstring (311, "Type")); + AddChild (type); + ++ BPoint pointArray[] = { ++ BPoint ( 2, 8), ++ BPoint ( 3, 4), ++ BPoint ( 6, 3), ++ BPoint ( 9, 2), ++ BPoint (12, 3), ++ BPoint (20, 5), ++ BPoint (23, 7), ++ BPoint (27, 12), ++ BPoint (26, 15), ++ BPoint (24, 20), ++ BPoint (22, 23), ++ BPoint (19, 28), ++ BPoint (18, 28), ++ BPoint (16, 23), ++ BPoint (15, 20), ++ BPoint (13, 21), ++ BPoint (11, 23), ++ BPoint ( 6, 22), ++ BPoint ( 4, 15), ++ BPoint ( 3, 10) ++ }; + BPolygon *poly = new BPolygon(); +- poly->AddPoints (&BPoint ( 2, 8), 1); +- poly->AddPoints (&BPoint ( 3, 4), 1); +- poly->AddPoints (&BPoint ( 6, 3), 1); +- poly->AddPoints (&BPoint ( 9, 2), 1); +- poly->AddPoints (&BPoint (12, 3), 1); +- poly->AddPoints (&BPoint (20, 5), 1); +- poly->AddPoints (&BPoint (23, 7), 1); +- poly->AddPoints (&BPoint (27, 12), 1); +- poly->AddPoints (&BPoint (26, 15), 1); +- poly->AddPoints (&BPoint (24, 20), 1); +- poly->AddPoints (&BPoint (22, 23), 1); +- poly->AddPoints (&BPoint (19, 28), 1); +- poly->AddPoints (&BPoint (18, 28), 1); +- poly->AddPoints (&BPoint (16, 23), 1); +- poly->AddPoints (&BPoint (15, 20), 1); +- poly->AddPoints (&BPoint (13, 21), 1); +- poly->AddPoints (&BPoint (11, 23), 1); +- poly->AddPoints (&BPoint ( 6, 22), 1); +- poly->AddPoints (&BPoint ( 4, 15), 1); +- poly->AddPoints (&BPoint ( 3, 10), 1); ++ poly->AddPoints(pointArray, 20); + + BWindow *picWindow = new BWindow (BRect (0, 0, 100, 100), "Temp Pic Window", B_BORDERED_WINDOW, uint32 (NULL), uint32 (NULL)); + BView *bg = new BView (BRect (0, 0, 100, 100), "Temp Pic View", uint32 (NULL), uint32 (NULL)); +@@ -265,4 +268,4 @@ void AttribPolyblob::MessageReceived (BMessage *msg) + inherited::MessageReceived (msg); + break; + } +-} +\ No newline at end of file ++} +diff --git a/source/AttribPolygon.cpp b/source/AttribPolygon.cpp +index 57a500f..f9b035d 100644 +--- a/source/AttribPolygon.cpp ++++ b/source/AttribPolygon.cpp +@@ -26,15 +26,18 @@ AttribPolygon::AttribPolygon () + BBox *type = new BBox (BRect (18, 32, 130, 82), "type"); + type->SetLabel (lstring (311, "Type")); + AddChild (type); +- ++ ++ BPoint pointArray[] = { ++ BPoint ( 2, 8), ++ BPoint ( 9, 2), ++ BPoint (27, 12), ++ BPoint (19, 28), ++ BPoint (14, 20), ++ BPoint ( 9, 26) ++ }; + BPolygon *poly = new BPolygon(); +- poly->AddPoints (&BPoint ( 2, 8), 1); +- poly->AddPoints (&BPoint ( 9, 2), 1); +- poly->AddPoints (&BPoint (27, 12), 1); +- poly->AddPoints (&BPoint (19, 28), 1); +- poly->AddPoints (&BPoint (14, 20), 1); +- poly->AddPoints (&BPoint ( 9, 26), 1); +- ++ poly->AddPoints(pointArray, 6); ++ + BWindow *picWindow = new BWindow (BRect (0, 0, 100, 100), "Temp Pic Window", B_BORDERED_WINDOW, uint32 (NULL), uint32 (NULL)); + BView *bg = new BView (BRect (0, 0, 100, 100), "Temp Pic View", uint32 (NULL), uint32 (NULL)); + picWindow->AddChild (bg); +@@ -254,4 +257,4 @@ void AttribPolygon::MessageReceived (BMessage *msg) + inherited::MessageReceived (msg); + break; + } +-} +\ No newline at end of file ++} +diff --git a/source/Becasso.cpp b/source/Becasso.cpp +index cc19cf1..4d32f68 100644 +--- a/source/Becasso.cpp ++++ b/source/Becasso.cpp +@@ -942,7 +942,7 @@ void Becasso::MessageReceived (BMessage *message) + canvas *current = (canvas *) canvases.ItemAt (i); + if (its_looper == current->its_looper) + { +- delete (canvases.RemoveItem (i)); ++ delete ((canvas *) canvases.RemoveItem (i)); + break; + } + } +diff --git a/source/BecassoAddOn.h b/source/BecassoAddOn.h +index 03d697b..936d626 100644 +--- a/source/BecassoAddOn.h ++++ b/source/BecassoAddOn.h +@@ -12,12 +12,7 @@ + + class BView; + +-// The following is for exporting the necessary symbols. +-#if !defined (BUILDING_BECASSO) || defined (BUILDING_ADDON) +-# define ADDON_EXPORT __declspec(dllexport) +-#else +-# define ADDON_EXPORT __declspec(dllimport) +-#endif ++# define ADDON_EXPORT + + // Undefined Hue - some of the HSV functions from Becasso can return this. + #define HUE_UNDEF -1.0 +diff --git a/source/Build.h b/source/Build.h +index 7646f07..6d93cd6 100644 +--- a/source/Build.h ++++ b/source/Build.h +@@ -1,10 +1,6 @@ + #ifndef _BUILD_H + #define _BUILD_H + +-#if defined (BUILDING_BECASSO) +-# define IMPEXP __declspec(dllexport) +-#else +-# define IMPEXP __declspec(dllimport) +-#endif ++#define IMPEXP + + #endif +diff --git a/source/CanvasTools.cpp b/source/CanvasTools.cpp +index ce5db99..e2247f1 100644 +--- a/source/CanvasTools.cpp ++++ b/source/CanvasTools.cpp +@@ -3071,8 +3071,8 @@ inline bool CanvasView::inbounds (LPoint p) + + inline bool CanvasView::isfillcolor0 (LPoint point) + { +- uint32 *addr = bbitsl + bbprl*point.y + point.x; +- return (*addr == fill32 || (!(fill32 & ALPHA_MASK) && !(*addr & ALPHA_MASK))); ++ ulong *addr = bbitsl + bbprl*point.y + point.x; ++ return (*(uint32*)addr == fill32 || (!(fill32 & ALPHA_MASK) && !(*addr & ALPHA_MASK))); + } + + inline bool CanvasView::isfillcolorrgb (LPoint point, uchar *t) +@@ -3158,7 +3158,7 @@ void CanvasView::tFill (int32 mode, BPoint point, uint32 buttons, rgb_color *c) + tbits = (uchar *) temp->Bits(); + tbpr = temp->BytesPerRow(); + tbprl = tbpr/4; +- bbitsl = (uint32 *) currentLayer()->Bits(); ++ bbitsl = (ulong *) currentLayer()->Bits(); + bbits = (uchar *) bbitsl; + bbpr = currentLayer()->BytesPerRow(); + bbprl = bbpr/4; +diff --git a/source/CanvasView.cpp b/source/CanvasView.cpp +index c1b60b0..e6b4576 100644 +--- a/source/CanvasView.cpp ++++ b/source/CanvasView.cpp +@@ -5378,7 +5378,7 @@ void CanvasView::Paste (bool winAct) + inDrag ? "true" : "false"); + } + BPoint point; +- ulong buttons; ++ uint32 buttons; + GetMouse (&point, &buttons, true); + if (inPaste) + { +diff --git a/source/ColorWindow.cpp b/source/ColorWindow.cpp +index 7d8f85b..c91ad01 100644 +--- a/source/ColorWindow.cpp ++++ b/source/ColorWindow.cpp +@@ -236,9 +236,9 @@ void ColorWindow::MessageReceived (BMessage *msg) + case 'SetC': + { + char s[16]; +- c.red = msg->FindInt32 ("color", 0L); +- c.green = msg->FindInt32 ("color", 1L); +- c.blue = msg->FindInt32 ("color", 2L); ++ c.red = msg->FindInt32 ("color", 0); ++ c.green = msg->FindInt32 ("color", 1); ++ c.blue = msg->FindInt32 ("color", 2); + int32 alpha; + if (msg->FindInt32 ("alpha", &alpha) == B_OK) + { +@@ -312,9 +312,9 @@ void ColorWindow::MessageReceived (BMessage *msg) + case 'CSQc': + { + char s[16]; +- c.red = msg->FindInt32 ("color", 0L); +- c.green = msg->FindInt32 ("color", 1L); +- c.blue = msg->FindInt32 ("color", 2L); ++ c.red = msg->FindInt32 ("color", 0); ++ c.green = msg->FindInt32 ("color", 1); ++ c.blue = msg->FindInt32 ("color", 2); + sprintf (s, "%i", c.red); + rTC->SetText (s); + sprintf (s, "%i", c.green); +@@ -328,9 +328,9 @@ void ColorWindow::MessageReceived (BMessage *msg) + { + char s[16]; + hsv_color h; +- h.hue = msg->FindFloat ("color", 0L); +- h.saturation = msg->FindFloat ("color", 1L); +- h.value = msg->FindFloat ("color", 2L); ++ h.hue = msg->FindFloat ("color", 0); ++ h.saturation = msg->FindFloat ("color", 1); ++ h.value = msg->FindFloat ("color", 2); + sprintf (s, "%3.0f", h.hue); + hTC->SetText (s); + sprintf (s, "%1.3f", h.saturation); +diff --git a/source/DragWindow.h b/source/DragWindow.h +index d9161ae..03bcc61 100644 +--- a/source/DragWindow.h ++++ b/source/DragWindow.h +@@ -3,6 +3,7 @@ + + #include + #include ++#include + #include "Settings.h" + + class DragWindow : public BWindow +@@ -42,4 +43,4 @@ private: + char fKind[64]; + }; + +-#endif +\ No newline at end of file ++#endif +diff --git a/source/HelpView.cpp b/source/HelpView.cpp +index 1ab620b..cc871fa 100644 +--- a/source/HelpView.cpp ++++ b/source/HelpView.cpp +@@ -1,4 +1,5 @@ + #include "HelpView.h" ++#include + + HelpView::HelpView (const BRect frame, const char *name) + : BView (frame, name, B_FOLLOW_LEFT, B_WILL_DRAW) +@@ -29,4 +30,4 @@ void HelpView::setText (const char *t) + { + strcpy (text, t); + Invalidate(); +-} +\ No newline at end of file ++} +diff --git a/source/Jamfile b/source/Jamfile +index 3a6f373..607cb7f 100644 +--- a/source/Jamfile ++++ b/source/Jamfile +@@ -1,10 +1,16 @@ + SubDir TOP source ; + +-LINKLIBS on Becasso = -lbe -lz -ltracker -ltranslation -lgame -ldevice ; ++LINKLIBS on Becasso = -lbe -lz -ltracker -ltranslation -lgame -ldevice -lstdc++ ; + LINKFLAGS on Becasso = -Xlinker -soname=_APP_ ; + + AS = nasm -f elf32 ; + ++local have64bits = [ GLOB /system : kernel_x86_64 ] ; ++x86_sources = mmx_gcc.asm ; ++if $(have64bits) { ++ x86_sources = ; ++} ++ + Main Becasso : + TabView.cpp + Slider.cpp +@@ -90,7 +96,7 @@ Main Becasso : + AddOn.cpp + AddOnWindow.cpp + AddOnSupport.cpp +- mmx_gcc.asm ++ $(x86_sources) + ; + + AddResources Becasso : Becasso.rsrc ; +diff --git a/source/MagView.cpp b/source/MagView.cpp +index 5b3a5ee..084a92e 100644 +--- a/source/MagView.cpp ++++ b/source/MagView.cpp +@@ -67,7 +67,7 @@ void MagView::MouseDown (BPoint point) + extern ColorMenuButton *locolor, *hicolor; + BPoint p = BPoint (int (point.x/zoom), int (point.y/zoom)); + BRect pix; +- ulong buttons = Window()->CurrentMessage()->FindInt32 ("buttons"); ++ uint32 buttons = Window()->CurrentMessage()->FindInt32 ("buttons"); + rgb_color hi; + if (modifiers() & B_OPTION_KEY) + { +@@ -346,4 +346,4 @@ status_t MagView::Redo () + } + else + return B_ERROR; +-} +\ No newline at end of file ++} +diff --git a/source/MagWindow.h b/source/MagWindow.h +index 6ae438f..8984b35 100644 +--- a/source/MagWindow.h ++++ b/source/MagWindow.h +@@ -22,6 +22,7 @@ virtual void MenusBeginning (); + float menubarHeight (); + + private: ++typedef BWindow inherited; + MagView *magView; + BScrollBar *h, *v; + BMenuBar *menubar; +@@ -30,4 +31,4 @@ BWindow *myWindow; + float menubarheight; + }; + +-#endif +\ No newline at end of file ++#endif +diff --git a/source/PatternMenu.h b/source/PatternMenu.h +index 1136617..630e3d3 100644 +--- a/source/PatternMenu.h ++++ b/source/PatternMenu.h +@@ -11,6 +11,8 @@ + + #define MAX_PATTERNS 20 + ++class PatternMenuButton; ++ + class PatternMenu : public BMenu + { + friend class PatternMenuButton; +@@ -40,4 +42,4 @@ BView *view; + float hs, vs; + }; + +-#endif +\ No newline at end of file ++#endif +diff --git a/source/PointStack.cpp b/source/PointStack.cpp +index 7f983cb..92e854f 100644 +--- a/source/PointStack.cpp ++++ b/source/PointStack.cpp +@@ -1,5 +1,6 @@ + #include "PointStack.h" + #include ++#include + + PointStack::PointStack () + { +diff --git a/source/PrefsWindow.cpp b/source/PrefsWindow.cpp +index 5789b4b..767cae3 100644 +--- a/source/PrefsWindow.cpp ++++ b/source/PrefsWindow.cpp +@@ -11,6 +11,7 @@ + #include "PrefsWindow.h" + #include "Colors.h" + #include ++#include + #include "Settings.h" + #include + #include +diff --git a/source/SBitmap.cpp b/source/SBitmap.cpp +index 2c74c53..4135881 100644 +--- a/source/SBitmap.cpp ++++ b/source/SBitmap.cpp +@@ -2,6 +2,7 @@ + + #include "SBitmap.h" + #include ++#include + #include + + SBitmap::SBitmap (BBitmap *src) +diff --git a/source/Selection.cpp b/source/Selection.cpp +index 4844b4c..2bd9316 100644 +--- a/source/Selection.cpp ++++ b/source/Selection.cpp +@@ -3,8 +3,6 @@ + #include + #include + +-#define bzero(p,n) memset(p,0,n) +- + Selection::Selection (BRect bounds) + : BBitmap (bounds, B_BITMAP_ACCEPTS_VIEWS, B_GRAYSCALE_8_BIT) + { +@@ -28,4 +26,4 @@ Selection::~Selection () + void Selection::ClearTo (grey_pixel p) + { + memset (Bits(), p, BitsLength()); +-} +\ No newline at end of file ++} +diff --git a/source/Slider.cpp b/source/Slider.cpp +index c2a1dad..3e38a78 100644 +--- a/source/Slider.cpp ++++ b/source/Slider.cpp +@@ -163,7 +163,7 @@ void Slider::MouseDown (BPoint point) + + BPoint knobpos = BPoint (float (value - min)/(max - min)*(width - knobsize), 1); + knob = BRect (knobpos.x + 1, knobpos.y + 1, knobpos.x + knobsize - 2, knobpos.y + height - 2); +- ulong buttons; ++ uint32 buttons; + buttons = Window()->CurrentMessage()->FindInt32 ("buttons"); + float px = -1; + bool dragging = false; +@@ -419,4 +419,4 @@ void Slider::NotifyTarget () + target->MessageReceived (changed); + target->UnlockLooper(); + delete changed; +-} +\ No newline at end of file ++} +diff --git a/source/TOTDWindow.cpp b/source/TOTDWindow.cpp +index 5068acd..31f940a 100644 +--- a/source/TOTDWindow.cpp ++++ b/source/TOTDWindow.cpp +@@ -2,6 +2,7 @@ + #include "Colors.h" + #include "BitmapView.h" + #include "Settings.h" ++#include + #include + #include + #include +diff --git a/source/TabView.cpp b/source/TabView.cpp +index d3292e4..fb89ca5 100644 +--- a/source/TabView.cpp ++++ b/source/TabView.cpp +@@ -1,6 +1,7 @@ + #include "TabView.h" + #include "Colors.h" + #include ++#include + #include + + #define _HTABHEIGHT (TAB_HEIGHT/2) +@@ -175,4 +176,4 @@ void TabView::RaiseView (int n) + AddChild (views[n]); + current = n; + Invalidate(); +-} +\ No newline at end of file ++} +diff --git a/source/Tablet.h b/source/Tablet.h +index 3aa7fb8..28e69ec 100644 +--- a/source/Tablet.h ++++ b/source/Tablet.h +@@ -3,6 +3,7 @@ + + #include + #include "Wacom.h" ++#include + #include + #include + +@@ -46,4 +47,4 @@ float fMaxPressure; + int32 fTabletType; + }; + +-#endif +\ No newline at end of file ++#endif +diff --git a/source/ThumbnailFilePanel.cpp b/source/ThumbnailFilePanel.cpp +index cdecd43..9fb501f 100644 +--- a/source/ThumbnailFilePanel.cpp ++++ b/source/ThumbnailFilePanel.cpp +@@ -3,6 +3,7 @@ + #include "ThumbnailFilePanel.h" + #include "Colors.h" + #include ++#include + #include "BitmapStuff.h" + #include + #include +@@ -202,4 +203,4 @@ void ThumbnailView::update (BBitmap *map) + delete tmpView; + } + Invalidate(); +-} +\ No newline at end of file ++} +diff --git a/source/VideoConsumer.h b/source/VideoConsumer.h +index 56772ff..9dfb518 100644 +--- a/source/VideoConsumer.h ++++ b/source/VideoConsumer.h +@@ -23,13 +23,13 @@ public: + const char * name, + BView * view, + BMediaAddOn *addon, +- const uint32 internal_id); ++ const int32 internal_id); + ~VideoConsumer(); + + /* BMediaNode */ + public: + +- virtual BMediaAddOn *AddOn(long *cookie) const; ++ virtual BMediaAddOn *AddOn(int32 *cookie) const; + + protected: + +@@ -109,7 +109,7 @@ public: + + private: + +- uint32 mInternalID; ++ int32 mInternalID; + BMediaAddOn *mAddOn; + + bool mConnectionActive; +@@ -122,7 +122,7 @@ private: + BBitmap *mBitmap[3]; + bool mOurBuffers; + BBufferGroup *mBuffers; +- uint32 mBufferMap[3]; ++ BBuffer *mBufferMap[3]; + + bigtime_t mRate; + uint32 mImageFormat; +diff --git a/source/add-ons/AutoContrast/Jamfile b/source/add-ons/AutoContrast/Jamfile +index 0498302..ce2823a 100644 +--- a/source/add-ons/AutoContrast/Jamfile ++++ b/source/add-ons/AutoContrast/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons AutoContrast ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on AutoContrast = -nostart -Xlinker -soname=AutoContrast ; ++LINKFLAGS on AutoContrast = -shared -Xlinker -soname=AutoContrast ; + + Main AutoContrast : + AutoContrast.cpp +diff --git a/source/add-ons/Blur/Jamfile b/source/add-ons/Blur/Jamfile +index 7784c80..60ebfa9 100644 +--- a/source/add-ons/Blur/Jamfile ++++ b/source/add-ons/Blur/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Blur ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Blur = -nostart -Xlinker -soname=Blur ; ++LINKFLAGS on Blur = -shared -Xlinker -soname=Blur ; + + Main Blur : + Blur.cpp +diff --git a/source/add-ons/Brightness/Jamfile b/source/add-ons/Brightness/Jamfile +index 7c308a9..1885536 100644 +--- a/source/add-ons/Brightness/Jamfile ++++ b/source/add-ons/Brightness/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Brightness ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Brightness = -nostart -Xlinker -soname=Brightness ; ++LINKFLAGS on Brightness = -shared -Xlinker -soname=Brightness ; + + Main Brightness : + Brightness.cpp +diff --git a/source/add-ons/BumpMap/Jamfile b/source/add-ons/BumpMap/Jamfile +index c03ef3a..3590082 100644 +--- a/source/add-ons/BumpMap/Jamfile ++++ b/source/add-ons/BumpMap/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons BumpMap ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on BumpMap = -nostart -Xlinker -soname=BumpMap ; ++LINKFLAGS on BumpMap = -shared -Xlinker -soname=BumpMap ; + + Main BumpMap : + BumpMap.cpp +diff --git a/source/add-ons/CaptureTest/Jamfile b/source/add-ons/CaptureTest/Jamfile +index 8525ae0..73ad315 100644 +--- a/source/add-ons/CaptureTest/Jamfile ++++ b/source/add-ons/CaptureTest/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons CaptureTest ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on CaptureTest = -nostart -Xlinker -soname=CaptureTest ; ++LINKFLAGS on CaptureTest = -shared -Xlinker -soname=CaptureTest ; + + Main CaptureTest : + CaptureTest.cpp +diff --git a/source/add-ons/Chromakey/Jamfile b/source/add-ons/Chromakey/Jamfile +index 1355f28..e503192 100644 +--- a/source/add-ons/Chromakey/Jamfile ++++ b/source/add-ons/Chromakey/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Chromakey ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Chromakey = -nostart -Xlinker -soname=Chromakey ; ++LINKFLAGS on Chromakey = -shared -Xlinker -soname=Chromakey ; + + Main Chromakey : + Chromakey.cpp +diff --git a/source/add-ons/ColorCurves/Jamfile b/source/add-ons/ColorCurves/Jamfile +index 5aa8fab..52dc7ed 100644 +--- a/source/add-ons/ColorCurves/Jamfile ++++ b/source/add-ons/ColorCurves/Jamfile +@@ -2,13 +2,19 @@ SubDir TOP source add-ons ColorCurves ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on ColorCurves = -nostart -Xlinker -soname=ColorCurves ; ++LINKFLAGS on ColorCurves = -shared -Xlinker -soname=ColorCurves ; + + AS = nasm -f elf32 ; + ++local have64bits = [ GLOB /system : kernel_x86_64 ] ; ++x86_sources = Colorcurves_x86.asm ; ++if $(have64bits) { ++ x86_sources = ; ++} ++ + Main ColorCurves : + ColorCurves.cpp +- Colorcurves_x86.asm ++ $(x86_sources) + ; + + InstallBin target/add-ons : ColorCurves ; +diff --git a/source/add-ons/Diffuse/Jamfile b/source/add-ons/Diffuse/Jamfile +index 8e179c2..8c79f53 100644 +--- a/source/add-ons/Diffuse/Jamfile ++++ b/source/add-ons/Diffuse/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Diffuse ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Diffuse = -nostart -Xlinker -soname=Diffuse ; ++LINKFLAGS on Diffuse = -shared -Xlinker -soname=Diffuse ; + + Main Diffuse : + Diffuse.cpp +diff --git a/source/add-ons/Gaussian/Jamfile b/source/add-ons/Gaussian/Jamfile +index b4b85c4..4ce3163 100644 +--- a/source/add-ons/Gaussian/Jamfile ++++ b/source/add-ons/Gaussian/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Gaussian ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Gaussian = -nostart -Xlinker -soname=Gaussian ; ++LINKFLAGS on Gaussian = -shared -Xlinker -soname=Gaussian ; + + Main Gaussian : + Gaussian.cpp +diff --git a/source/add-ons/Gradient/Jamfile b/source/add-ons/Gradient/Jamfile +index ac9a7c1..94107c1 100644 +--- a/source/add-ons/Gradient/Jamfile ++++ b/source/add-ons/Gradient/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Gradient ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Gradient = -nostart -Xlinker -soname=Gradient ; ++LINKFLAGS on Gradient = -shared -Xlinker -soname=Gradient ; + + Main Gradient : + Gradient.cpp +diff --git a/source/add-ons/ImageElements/Jamfile b/source/add-ons/ImageElements/Jamfile +index 492f094..db8fda9 100644 +--- a/source/add-ons/ImageElements/Jamfile ++++ b/source/add-ons/ImageElements/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons ImageElements ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on ImageElements = -nostart -Xlinker -soname=ImageElements ; ++LINKFLAGS on ImageElements = -shared -Xlinker -soname=ImageElements ; + + Main ImageElements : + ImageElements.cpp +diff --git a/source/add-ons/Jim/Jamfile b/source/add-ons/Jim/Jamfile +index 21dbda3..e6d5660 100644 +--- a/source/add-ons/Jim/Jamfile ++++ b/source/add-ons/Jim/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Jim ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Jim = -nostart -Xlinker -soname=Jim ; ++LINKFLAGS on Jim = -shared -Xlinker -soname=Jim ; + + Main Jim : + Jim.cpp +diff --git a/source/add-ons/Mandelbrot/Jamfile b/source/add-ons/Mandelbrot/Jamfile +index 54160f9..3c71dc2 100644 +--- a/source/add-ons/Mandelbrot/Jamfile ++++ b/source/add-ons/Mandelbrot/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Mandelbrot ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Mandelbrot = -nostart -Xlinker -soname=Mandelbrot ; ++LINKFLAGS on Mandelbrot = -shared -Xlinker -soname=Mandelbrot ; + + Main Mandelbrot : + mandelbrot.cpp +diff --git a/source/add-ons/MotionBlur/Jamfile b/source/add-ons/MotionBlur/Jamfile +index 8c8d0c5..3a4d2a0 100644 +--- a/source/add-ons/MotionBlur/Jamfile ++++ b/source/add-ons/MotionBlur/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons MotionBlur ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on MotionBlur = -nostart -Xlinker -soname=MotionBlur ; ++LINKFLAGS on MotionBlur = -shared -Xlinker -soname=MotionBlur ; + + Main MotionBlur : + MotionBlur.cpp +diff --git a/source/add-ons/MultiGradient/Jamfile b/source/add-ons/MultiGradient/Jamfile +index 393431b..837683e 100644 +--- a/source/add-ons/MultiGradient/Jamfile ++++ b/source/add-ons/MultiGradient/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons MultiGradient ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on MultiGradient = -nostart -Xlinker -soname=MultiGradient ; ++LINKFLAGS on MultiGradient = -shared -Xlinker -soname=MultiGradient ; + + Main MultiGradient : + MultiGradient.cpp +diff --git a/source/add-ons/Negate/Jamfile b/source/add-ons/Negate/Jamfile +index 8ae0cb7..b84e8d3 100644 +--- a/source/add-ons/Negate/Jamfile ++++ b/source/add-ons/Negate/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Negate ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Negate = -nostart -Xlinker -soname=Negate ; ++LINKFLAGS on Negate = -shared -Xlinker -soname=Negate ; + + Main Negate : + Negate.cpp +diff --git a/source/add-ons/Noise/Jamfile b/source/add-ons/Noise/Jamfile +index 74d66d8..169a85b 100644 +--- a/source/add-ons/Noise/Jamfile ++++ b/source/add-ons/Noise/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Noise ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Noise = -nostart -Xlinker -soname=Noise ; ++LINKFLAGS on Noise = -shared -Xlinker -soname=Noise ; + + Main Noise : + Noise.cpp +diff --git a/source/add-ons/OilPaint/Jamfile b/source/add-ons/OilPaint/Jamfile +index 463b025..251e139 100644 +--- a/source/add-ons/OilPaint/Jamfile ++++ b/source/add-ons/OilPaint/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons OilPaint ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on OilPaint = -nostart -Xlinker -soname=OilPaint ; ++LINKFLAGS on OilPaint = -shared -Xlinker -soname=OilPaint ; + + Main OilPaint : + OilPaint.cpp +diff --git a/source/add-ons/Palmcam/Jamfile b/source/add-ons/Palmcam/Jamfile +index 699ac80..7f6a639 100644 +--- a/source/add-ons/Palmcam/Jamfile ++++ b/source/add-ons/Palmcam/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Palmcam ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Palmcam = -nostart -Xlinker -soname=Palmcam ; ++LINKFLAGS on Palmcam = -shared -Xlinker -soname=Palmcam ; + + Main Palmcam : + Palmcam.cpp +diff --git a/source/add-ons/Quantize/Jamfile b/source/add-ons/Quantize/Jamfile +index b01f888..896bc16 100644 +--- a/source/add-ons/Quantize/Jamfile ++++ b/source/add-ons/Quantize/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Quantize ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Quantize = -nostart -Xlinker -soname=Quantize ; ++LINKFLAGS on Quantize = -shared -Xlinker -soname=Quantize ; + + Main Quantize : + Quantize.cpp +diff --git a/source/add-ons/Ripple/Jamfile b/source/add-ons/Ripple/Jamfile +index 4759470..f135490 100644 +--- a/source/add-ons/Ripple/Jamfile ++++ b/source/add-ons/Ripple/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Ripple ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Ripple = -nostart -Xlinker -soname=Ripple ; ++LINKFLAGS on Ripple = -shared -Xlinker -soname=Ripple ; + + Main Ripple : + Ripple.cpp +diff --git a/source/add-ons/Scale/Jamfile b/source/add-ons/Scale/Jamfile +index 7b86ba3..6abf1e5 100644 +--- a/source/add-ons/Scale/Jamfile ++++ b/source/add-ons/Scale/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Scale ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Scale = -nostart -Xlinker -soname=Scale ; ++LINKFLAGS on Scale = -shared -Xlinker -soname=Scale ; + + Main Scale : + Scale.cpp +diff --git a/source/add-ons/Sepia/Jamfile b/source/add-ons/Sepia/Jamfile +index 83b18a9..dbc9d8b 100644 +--- a/source/add-ons/Sepia/Jamfile ++++ b/source/add-ons/Sepia/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Sepia ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Sepia = -nostart -Xlinker -soname=Sepia ; ++LINKFLAGS on Sepia = -shared -Xlinker -soname=Sepia ; + + Main Sepia : + Sepia.cpp +diff --git a/source/add-ons/Solarize/Jamfile b/source/add-ons/Solarize/Jamfile +index c108fdd..077a909 100644 +--- a/source/add-ons/Solarize/Jamfile ++++ b/source/add-ons/Solarize/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Solarize ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Solarize = -nostart -Xlinker -soname=Solarize ; ++LINKFLAGS on Solarize = -shared -Xlinker -soname=Solarize ; + + Main Solarize : + Solarize.cpp +diff --git a/source/add-ons/Tile/Jamfile b/source/add-ons/Tile/Jamfile +index 4252e7d..359e8e5 100644 +--- a/source/add-ons/Tile/Jamfile ++++ b/source/add-ons/Tile/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Tile ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Tile = -nostart -Xlinker -soname=Tile ; ++LINKFLAGS on Tile = -shared -Xlinker -soname=Tile ; + + Main Tile : + Tile.cpp +diff --git a/source/add-ons/Translate/Jamfile b/source/add-ons/Translate/Jamfile +index a441991..227dcaa 100644 +--- a/source/add-ons/Translate/Jamfile ++++ b/source/add-ons/Translate/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Translate ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Translate = -nostart -Xlinker -soname=Translate ; ++LINKFLAGS on Translate = -shared -Xlinker -soname=Translate ; + + Main Translate : + Translate.cpp +diff --git a/source/add-ons/VideoGrabber/Jamfile b/source/add-ons/VideoGrabber/Jamfile +index f769d50..a3539cc 100644 +--- a/source/add-ons/VideoGrabber/Jamfile ++++ b/source/add-ons/VideoGrabber/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons VideoGrabber ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on VideoGrabber = -nostart -Xlinker -soname=VideoGrabber ; ++LINKFLAGS on VideoGrabber = -shared -Xlinker -soname=VideoGrabber ; + + Main VideoGrabber : + VideoGrabber.cpp +diff --git a/source/add-ons/VideoGrabber/VideoConsumer.cpp b/source/add-ons/VideoGrabber/VideoConsumer.cpp +index b1458f9..5a27a23 100644 +--- a/source/add-ons/VideoGrabber/VideoConsumer.cpp ++++ b/source/add-ons/VideoGrabber/VideoConsumer.cpp +@@ -36,7 +36,7 @@ VideoConsumer::VideoConsumer( + const char * name, + BView *view, + BMediaAddOn *addon, +- const uint32 internal_id) : ++ const int32 internal_id) : + + BMediaNode(name), + BMediaEventLooper(), +@@ -61,7 +61,7 @@ VideoConsumer::VideoConsumer( + for (uint32 j = 0; j < 3; j++) + { + mBitmap[j] = NULL; +- mBufferMap[j] = 0; ++ mBufferMap[j] = NULL; + } + + SetPriority(B_DISPLAY_PRIORITY); +@@ -94,7 +94,7 @@ VideoConsumer::~VideoConsumer() + //--------------------------------------------------------------- + + BMediaAddOn * +-VideoConsumer::AddOn(long *cookie) const ++VideoConsumer::AddOn(int32 *cookie) const + { + // do the right thing if we're ever used with an add-on + *cookie = mInternalID; +@@ -260,7 +260,7 @@ VideoConsumer::CreateBuffers( + for (int j = 0; j < 3; j++) + if (buffList[j] != NULL) + { +- mBufferMap[j] = (uint32) buffList[j]; ++ mBufferMap[j] = buffList[j]; + // PROGRESS(" j = %d buffer = %08lx\n", j, mBufferMap[j]); + } + else +@@ -493,7 +493,7 @@ VideoConsumer::HandleEvent( + uint32 index = 0; + mOurBuffers = true; + while(index < 3) +- if ((uint32)buffer == mBufferMap[index]) ++ if (buffer == mBufferMap[index]) + break; + else + index++; +diff --git a/source/add-ons/Wave/Jamfile b/source/add-ons/Wave/Jamfile +index 3e1777c..5c21617 100644 +--- a/source/add-ons/Wave/Jamfile ++++ b/source/add-ons/Wave/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons Wave ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on Wave = -nostart -Xlinker -soname=Wave ; ++LINKFLAGS on Wave = -shared -Xlinker -soname=Wave ; + + Main Wave : + Wave.cpp +diff --git a/source/add-ons/WinGrab/Jamfile b/source/add-ons/WinGrab/Jamfile +index 729d9f5..c1f5f31 100644 +--- a/source/add-ons/WinGrab/Jamfile ++++ b/source/add-ons/WinGrab/Jamfile +@@ -2,7 +2,7 @@ SubDir TOP source add-ons WinGrab ; + + SubDirHdrs $(TOP) source ; + +-LINKFLAGS on WinGrab = -nostart -Xlinker -soname=WinGrab ; ++LINKFLAGS on WinGrab = -shared -Xlinker -soname=WinGrab ; + + Main WinGrab : + WinGrab.cpp +diff --git a/source/mmx.c b/source/mmx.c +index 8319af2..94a6b84 100644 +--- a/source/mmx.c ++++ b/source/mmx.c +@@ -42,6 +42,12 @@ void mmx_alpha_blend_nodiff_ga (uint64 ga_64, uint32 *s, uint32 *d, int size); + void mmx_alpha_blend_diff (uint32 *s, uint32 *d, int height, int difference, int width); + void mmx_alpha_blend_nodiff (uint32 *s, uint32 *d, int size); + #endif ++#if defined (__GNUC__) && defined (__x86_64__) ++void mmx_alpha_blend_diff_ga (uint64 ga_64, uint32 *s, uint32 *d, int height, int difference, int width) {}; ++void mmx_alpha_blend_nodiff_ga (uint64 ga_64, uint32 *s, uint32 *d, int size) {}; ++void mmx_alpha_blend_diff (uint32 *s, uint32 *d, int height, int difference, int width) {}; ++void mmx_alpha_blend_nodiff (uint32 *s, uint32 *d, int size) {}; ++#endif + + void mmx_alpha_blend (bgra_pixel *src, bgra_pixel *dest, int ga, int w, int l, int t, int r, int b) + // src and dest point to 32 bit pixel bitmaps, of equal width (w). +diff --git a/source/mmx.h b/source/mmx.h +index 84fd9a3..fc6dd01 100644 +--- a/source/mmx.h ++++ b/source/mmx.h +@@ -1,4 +1,5 @@ +-typedef unsigned long bgra_pixel; ++#include ++typedef uint32_t bgra_pixel; + + #if defined (__cplusplus) + extern "C" +-- +2.10.2 +