aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/matplotlib/py2/extern/agg24-svn/src/platform/BeOS
diff options
context:
space:
mode:
authormaxim-yurchuk <maxim-yurchuk@yandex-team.com>2025-02-11 13:26:52 +0300
committermaxim-yurchuk <maxim-yurchuk@yandex-team.com>2025-02-11 13:57:59 +0300
commitf895bba65827952ed934b2b46f9a45e30a191fd2 (patch)
tree03260c906d9ec41cdc03e2a496b15d407459cec0 /contrib/python/matplotlib/py2/extern/agg24-svn/src/platform/BeOS
parent5f7060466f7b9707818c2091e1a25c14f33c3474 (diff)
downloadydb-f895bba65827952ed934b2b46f9a45e30a191fd2.tar.gz
Remove deps on pandas
<https://github.com/ydb-platform/ydb/pull/14418> <https://github.com/ydb-platform/ydb/pull/14419> \-- аналогичные правки в gh Хочу залить в обход синка, чтобы посмотреть удалится ли pandas в нашей gh репе через piglet commit_hash:abca127aa37d4dbb94b07e1e18cdb8eb5b711860
Diffstat (limited to 'contrib/python/matplotlib/py2/extern/agg24-svn/src/platform/BeOS')
-rw-r--r--contrib/python/matplotlib/py2/extern/agg24-svn/src/platform/BeOS/agg_platform_support.cpp990
1 files changed, 0 insertions, 990 deletions
diff --git a/contrib/python/matplotlib/py2/extern/agg24-svn/src/platform/BeOS/agg_platform_support.cpp b/contrib/python/matplotlib/py2/extern/agg24-svn/src/platform/BeOS/agg_platform_support.cpp
deleted file mode 100644
index 078e141ccb0..00000000000
--- a/contrib/python/matplotlib/py2/extern/agg24-svn/src/platform/BeOS/agg_platform_support.cpp
+++ /dev/null
@@ -1,990 +0,0 @@
-//----------------------------------------------------------------------------
-// Anti-Grain Geometry - Version 2.4
-// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
-//
-// Permission to copy, use, modify, sell and distribute this software
-// is granted provided this copyright notice appears in all copies.
-// This software is provided "as is" without express or implied
-// warranty, and with no claim as to its suitability for any purpose.
-//
-//----------------------------------------------------------------------------
-// Contact: superstippi@gmx.de
-//----------------------------------------------------------------------------
-//
-// class platform_support
-//
-//----------------------------------------------------------------------------
-
-#include <new>
-#include <stdio.h>
-
-#include <Alert.h>
-#include <Application.h>
-#include <Bitmap.h>
-#include <Message.h>
-#include <MessageRunner.h>
-#include <Messenger.h>
-#include <Path.h>
-#include <Roster.h>
-#include <TranslationUtils.h>
-#include <View.h>
-#include <Window.h>
-
-#include <string.h>
-#include "platform/agg_platform_support.h"
-#include "util/agg_color_conv_rgb8.h"
-
-using std::nothrow;
-
-
-static void
-attach_buffer_to_BBitmap(agg::rendering_buffer& buffer, BBitmap* bitmap, bool flipY)
-{
- uint8* bits = (uint8*)bitmap->Bits();
- uint32 width = bitmap->Bounds().IntegerWidth() + 1;
- uint32 height = bitmap->Bounds().IntegerHeight() + 1;
- int32 bpr = bitmap->BytesPerRow();
- if (flipY) {
-// XXX: why don't I have to do this?!?
-// bits += bpr * (height - 1);
- bpr = -bpr;
- }
- buffer.attach(bits, width, height, bpr);
-}
-
-
-static color_space
-pix_format_to_color_space(agg::pix_format_e format)
-{
- color_space bitmapFormat = B_NO_COLOR_SPACE;
- switch (format) {
- case agg::pix_format_rgb555:
-
- bitmapFormat = B_RGB15;
- break;
-
- case agg::pix_format_rgb565:
-
- bitmapFormat = B_RGB16;
- break;
-
- case agg::pix_format_rgb24:
- case agg::pix_format_bgr24:
-
- bitmapFormat = B_RGB24;
- break;
-
- case agg::pix_format_rgba32:
- case agg::pix_format_argb32:
- case agg::pix_format_abgr32:
- case agg::pix_format_bgra32:
-
- bitmapFormat = B_RGBA32;
- break;
- }
- return bitmapFormat;
-}
-
-
-// #pragma mark -
-
-
-class AGGView : public BView {
- public:
- AGGView(BRect frame, agg::platform_support* agg,
- agg::pix_format_e format, bool flipY);
- virtual ~AGGView();
-
- virtual void AttachedToWindow();
- virtual void DetachedFromWindow();
-
- virtual void MessageReceived(BMessage* message);
- virtual void Draw(BRect updateRect);
- virtual void FrameResized(float width, float height);
-
- virtual void KeyDown(const char* bytes, int32 numBytes);
-
- virtual void MouseDown(BPoint where);
- virtual void MouseMoved(BPoint where, uint32 transit,
- const BMessage* dragMesage);
- virtual void MouseUp(BPoint where);
-
- BBitmap* Bitmap() const;
-
- uint8 LastKeyDown() const;
- uint32 MouseButtons();
-
- void Update();
- void ForceRedraw();
-
- unsigned GetKeyFlags();
-
- private:
- BBitmap* fBitmap;
- agg::pix_format_e fFormat;
- bool fFlipY;
-
- agg::platform_support* fAGG;
-
- uint32 fMouseButtons;
- int32 fMouseX;
- int32 fMouseY;
-
- uint8 fLastKeyDown;
-
- bool fRedraw;
-
- BMessageRunner* fPulse;
- bigtime_t fLastPulse;
- bool fEnableTicks;
-};
-
-AGGView::AGGView(BRect frame,
- agg::platform_support* agg,
- agg::pix_format_e format,
- bool flipY)
- : BView(frame, "AGG View", B_FOLLOW_ALL,
- B_FRAME_EVENTS | B_WILL_DRAW),
- fFormat(format),
- fFlipY(flipY),
-
- fAGG(agg),
-
- fMouseButtons(0),
- fMouseX(-1),
- fMouseY(-1),
-
- fLastKeyDown(0),
-
- fRedraw(true),
-
- fPulse(NULL),
- fLastPulse(0),
- fEnableTicks(true)
-{
- SetViewColor(B_TRANSPARENT_32_BIT);
-
- frame.OffsetTo(0.0, 0.0);
- fBitmap = new BBitmap(frame, 0, pix_format_to_color_space(fFormat));
- if (fBitmap->IsValid()) {
- attach_buffer_to_BBitmap(fAGG->rbuf_window(), fBitmap, fFlipY);
- } else {
- delete fBitmap;
- fBitmap = NULL;
- }
-}
-
-
-AGGView::~AGGView()
-{
- delete fBitmap;
- delete fPulse;
-}
-
-
-void
-AGGView::AttachedToWindow()
-{
- BMessage message('tick');
- BMessenger target(this, Looper());
- delete fPulse;
-// BScreen screen;
-// TODO: calc screen retrace
- fPulse = new BMessageRunner(target, &message, 40000);
-
- // make sure we call this once
- fAGG->on_resize(Bounds().IntegerWidth() + 1,
- Bounds().IntegerHeight() + 1);
- MakeFocus();
-}
-
-
-void
-AGGView::DetachedFromWindow()
-{
- delete fPulse;
- fPulse = NULL;
-}
-
-
-void
-AGGView::MessageReceived(BMessage* message)
-{
- bigtime_t now = system_time();
- switch (message->what) {
- case 'tick':
- // drop messages that have piled up
- if (/*now - fLastPulse > 30000*/fEnableTicks) {
- fLastPulse = now;
- if (!fAGG->wait_mode())
- fAGG->on_idle();
- Window()->PostMessage('entk', this);
- fEnableTicks = false;
- } else {
-// printf("dropping tick message (%lld)\n", now - fLastPulse);
- }
- break;
- case 'entk':
- fEnableTicks = true;
- if (now - fLastPulse > 30000) {
- fLastPulse = now;
- if (!fAGG->wait_mode())
- fAGG->on_idle();
- }
- break;
- default:
- BView::MessageReceived(message);
- break;
- }
-}
-
-
-void
-AGGView::Draw(BRect updateRect)
-{
- if (fBitmap) {
- if (fRedraw) {
- fAGG->on_draw();
- fRedraw = false;
- }
- if (fFormat == agg::pix_format_bgra32) {
- DrawBitmap(fBitmap, updateRect, updateRect);
- } else {
- BBitmap* bitmap = new BBitmap(fBitmap->Bounds(), 0, B_RGBA32);
-
- agg::rendering_buffer rbufSrc;
- attach_buffer_to_BBitmap(rbufSrc, fBitmap, false);
-
- agg::rendering_buffer rbufDst;
- attach_buffer_to_BBitmap(rbufDst, bitmap, false);
-
- switch(fFormat) {
- case agg::pix_format_rgb555:
- agg::color_conv(&rbufDst, &rbufSrc,
- agg::color_conv_rgb555_to_bgra32());
- break;
- case agg::pix_format_rgb565:
- agg::color_conv(&rbufDst, &rbufSrc,
- agg::color_conv_rgb565_to_bgra32());
- break;
- case agg::pix_format_rgb24:
- agg::color_conv(&rbufDst, &rbufSrc,
- agg::color_conv_rgb24_to_bgra32());
- break;
- case agg::pix_format_bgr24:
- agg::color_conv(&rbufDst, &rbufSrc,
- agg::color_conv_bgr24_to_bgra32());
- break;
- case agg::pix_format_rgba32:
- agg::color_conv(&rbufDst, &rbufSrc,
- agg::color_conv_rgba32_to_bgra32());
- break;
- case agg::pix_format_argb32:
- agg::color_conv(&rbufDst, &rbufSrc,
- agg::color_conv_argb32_to_bgra32());
- break;
- case agg::pix_format_abgr32:
- agg::color_conv(&rbufDst, &rbufSrc,
- agg::color_conv_abgr32_to_bgra32());
- break;
- case agg::pix_format_bgra32:
- agg::color_conv(&rbufDst, &rbufSrc,
- agg::color_conv_bgra32_to_bgra32());
- break;
- }
- DrawBitmap(bitmap, updateRect, updateRect);
- delete bitmap;
- }
- } else {
- FillRect(updateRect);
- }
-}
-
-
-void
-AGGView::FrameResized(float width, float height)
-{
- BRect r(0.0, 0.0, width, height);
- BBitmap* bitmap = new BBitmap(r, 0, pix_format_to_color_space(fFormat));
- if (bitmap->IsValid()) {
- delete fBitmap;
- fBitmap = bitmap;
- attach_buffer_to_BBitmap(fAGG->rbuf_window(), fBitmap, fFlipY);
-
- fAGG->trans_affine_resizing((int)width + 1,
- (int)height + 1);
-
- // pass the event on to AGG
- fAGG->on_resize((int)width + 1, (int)height + 1);
-
- fRedraw = true;
- Invalidate();
- } else
- delete bitmap;
-}
-
-
-void
-AGGView::KeyDown(const char* bytes, int32 numBytes)
-{
- if (bytes && numBytes > 0) {
- fLastKeyDown = bytes[0];
-
- bool left = false;
- bool up = false;
- bool right = false;
- bool down = false;
-
- switch (fLastKeyDown) {
-
- case B_LEFT_ARROW:
- left = true;
- break;
-
- case B_UP_ARROW:
- up = true;
- break;
-
- case B_RIGHT_ARROW:
- right = true;
- break;
-
- case B_DOWN_ARROW:
- down = true;
- break;
- }
-
-/* case key_f2:
-fAGG->copy_window_to_img(agg::platform_support::max_images - 1);
-fAGG->save_img(agg::platform_support::max_images - 1, "screenshot");
-break;
-}*/
-
-
- if (fAGG->m_ctrls.on_arrow_keys(left, right, down, up)) {
- fAGG->on_ctrl_change();
- fAGG->force_redraw();
- } else {
- fAGG->on_key(fMouseX, fMouseY, fLastKeyDown, GetKeyFlags());
- }
-// fAGG->on_key(fMouseX, fMouseY, fLastKeyDown, GetKeyFlags());
-
- }
-}
-
-
-void
-AGGView::MouseDown(BPoint where)
-{
- BMessage* currentMessage = Window()->CurrentMessage();
- if (currentMessage) {
- if (currentMessage->FindInt32("buttons", (int32*)&fMouseButtons) < B_OK)
- fMouseButtons = B_PRIMARY_MOUSE_BUTTON;
- } else
- fMouseButtons = B_PRIMARY_MOUSE_BUTTON;
-
- fMouseX = (int)where.x;
- fMouseY = fFlipY ? (int)(Bounds().Height() - where.y) : (int)where.y;
-
- // pass the event on to AGG
- if (fMouseButtons == B_PRIMARY_MOUSE_BUTTON) {
- // left mouse button -> see if to handle in controls
- fAGG->m_ctrls.set_cur(fMouseX, fMouseY);
- if (fAGG->m_ctrls.on_mouse_button_down(fMouseX, fMouseY)) {
- fAGG->on_ctrl_change();
- fAGG->force_redraw();
- } else {
- if (fAGG->m_ctrls.in_rect(fMouseX, fMouseY)) {
- if (fAGG->m_ctrls.set_cur(fMouseX, fMouseY)) {
- fAGG->on_ctrl_change();
- fAGG->force_redraw();
- }
- } else {
- fAGG->on_mouse_button_down(fMouseX, fMouseY, GetKeyFlags());
- }
- }
- } else if (fMouseButtons & B_SECONDARY_MOUSE_BUTTON) {
- // right mouse button -> simple
- fAGG->on_mouse_button_down(fMouseX, fMouseY, GetKeyFlags());
- }
- SetMouseEventMask(B_POINTER_EVENTS, B_LOCK_WINDOW_FOCUS);
-}
-
-
-void
-AGGView::MouseMoved(BPoint where, uint32 transit, const BMessage* dragMesage)
-{
- // workarround missed mouse up events
- // (if we react too slowly, app_server might have dropped events)
- BMessage* currentMessage = Window()->CurrentMessage();
- int32 buttons = 0;
- if (currentMessage->FindInt32("buttons", &buttons) < B_OK) {
- buttons = 0;
- }
- if (!buttons)
- MouseUp(where);
-
- fMouseX = (int)where.x;
- fMouseY = fFlipY ? (int)(Bounds().Height() - where.y) : (int)where.y;
-
- // pass the event on to AGG
- if (fAGG->m_ctrls.on_mouse_move(fMouseX, fMouseY,
- (GetKeyFlags() & agg::mouse_left) != 0)) {
- fAGG->on_ctrl_change();
- fAGG->force_redraw();
- } else {
- if (!fAGG->m_ctrls.in_rect(fMouseX, fMouseY)) {
- fAGG->on_mouse_move(fMouseX, fMouseY, GetKeyFlags());
- }
- }
-}
-
-
-void
-AGGView::MouseUp(BPoint where)
-{
- fMouseX = (int)where.x;
- fMouseY = fFlipY ? (int)(Bounds().Height() - where.y) : (int)where.y;
-
- // pass the event on to AGG
- if (fMouseButtons == B_PRIMARY_MOUSE_BUTTON) {
- fMouseButtons = 0;
-
- if (fAGG->m_ctrls.on_mouse_button_up(fMouseX, fMouseY)) {
- fAGG->on_ctrl_change();
- fAGG->force_redraw();
- }
- fAGG->on_mouse_button_up(fMouseX, fMouseY, GetKeyFlags());
- } else if (fMouseButtons == B_SECONDARY_MOUSE_BUTTON) {
- fMouseButtons = 0;
-
- fAGG->on_mouse_button_up(fMouseX, fMouseY, GetKeyFlags());
- }
-}
-
-
-BBitmap*
-AGGView::Bitmap() const
-{
- return fBitmap;
-}
-
-
-uint8
-AGGView::LastKeyDown() const
-{
- return fLastKeyDown;
-}
-
-
-uint32
-AGGView::MouseButtons()
-{
- uint32 buttons = 0;
- if (LockLooper()) {
- buttons = fMouseButtons;
- UnlockLooper();
- }
- return buttons;
-}
-
-
-void
-AGGView::Update()
-{
- // trigger display update
- if (LockLooper()) {
- Invalidate();
- UnlockLooper();
- }
-}
-
-
-void
-AGGView::ForceRedraw()
-{
- // force a redraw (fRedraw = true;)
- // and trigger display update
- if (LockLooper()) {
- fRedraw = true;
- Invalidate();
- UnlockLooper();
- }
-}
-
-
-unsigned
-AGGView::GetKeyFlags()
-{
- uint32 buttons = fMouseButtons;
- uint32 mods = modifiers();
- unsigned flags = 0;
- if (buttons & B_PRIMARY_MOUSE_BUTTON) flags |= agg::mouse_left;
- if (buttons & B_SECONDARY_MOUSE_BUTTON) flags |= agg::mouse_right;
- if (mods & B_SHIFT_KEY) flags |= agg::kbd_shift;
- if (mods & B_COMMAND_KEY) flags |= agg::kbd_ctrl;
- return flags;
-}
-
-// #pragma mark -
-
-
-class AGGWindow : public BWindow {
- public:
- AGGWindow()
- : BWindow(BRect(-50.0, -50.0, -10.0, -10.0),
- "AGG Application", B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS)
- {
- }
-
- virtual bool QuitRequested()
- {
- be_app->PostMessage(B_QUIT_REQUESTED);
- return true;
- }
-
- bool Init(BRect frame, agg::platform_support* agg, agg::pix_format_e format,
- bool flipY, uint32 flags)
- {
- MoveTo(frame.LeftTop());
- ResizeTo(frame.Width(), frame.Height());
-
- SetFlags(flags);
-
- frame.OffsetTo(0.0, 0.0);
- fView = new AGGView(frame, agg, format, flipY);
- AddChild(fView);
-
- return fView->Bitmap() != NULL;
- }
-
-
- AGGView* View() const
- {
- return fView;
- }
- private:
- AGGView* fView;
-};
-
-// #pragma mark -
-
-
-class AGGApplication : public BApplication {
- public:
- AGGApplication()
- : BApplication("application/x-vnd.AGG-AGG")
- {
- fWindow = new AGGWindow();
- }
-
- virtual void ReadyToRun()
- {
- if (fWindow) {
- fWindow->Show();
- }
- }
-
- virtual bool Init(agg::platform_support* agg, int width, int height,
- agg::pix_format_e format, bool flipY, uint32 flags)
- {
- BRect r(50.0, 50.0,
- 50.0 + width - 1.0,
- 50.0 + height - 1.0);
- uint32 windowFlags = B_ASYNCHRONOUS_CONTROLS;
- if (!(flags & agg::window_resize))
- windowFlags |= B_NOT_RESIZABLE;
-
- return fWindow->Init(r, agg, format, flipY, windowFlags);;
- }
-
-
- AGGWindow* Window() const
- {
- return fWindow;
- }
-
- private:
- AGGWindow* fWindow;
-};
-
-
-// #pragma mark -
-
-
-namespace agg
-{
-
-class platform_specific {
- public:
- platform_specific(agg::platform_support* agg,
- agg::pix_format_e format, bool flip_y)
- : fAGG(agg),
- fApp(NULL),
- fFormat(format),
- fFlipY(flip_y),
- fTimerStart(system_time())
- {
- memset(fImages, 0, sizeof(fImages));
- fApp = new AGGApplication();
- fAppPath[0] = 0;
- // figure out where we're running from
- app_info info;
- status_t ret = fApp->GetAppInfo(&info);
- if (ret >= B_OK) {
- BPath path(&info.ref);
- ret = path.InitCheck();
- if (ret >= B_OK) {
- ret = path.GetParent(&path);
- if (ret >= B_OK) {
- sprintf(fAppPath, "%s", path.Path());
- } else {
- fprintf(stderr, "getting app parent folder failed: %s\n", strerror(ret));
- }
- } else {
- fprintf(stderr, "making app path failed: %s\n", strerror(ret));
- }
- } else {
- fprintf(stderr, "GetAppInfo() failed: %s\n", strerror(ret));
- }
- }
- ~platform_specific()
- {
- for (int32 i = 0; i < agg::platform_support::max_images; i++)
- delete fImages[i];
- delete fApp;
- }
-
- bool Init(int width, int height, unsigned flags)
- {
- return fApp->Init(fAGG, width, height, fFormat, fFlipY, flags);
- }
-
- int Run()
- {
- status_t ret = B_NO_INIT;
- if (fApp) {
- fApp->Run();
- ret = B_OK;
- }
- return ret;
- }
-
- void SetTitle(const char* title)
- {
- if (fApp && fApp->Window() && fApp->Window()->Lock()) {
- fApp->Window()->SetTitle(title);
- fApp->Window()->Unlock();
- }
- }
- void StartTimer()
- {
- fTimerStart = system_time();
- }
- double ElapsedTime() const
- {
- return (system_time() - fTimerStart) / 1000.0;
- }
-
- void ForceRedraw()
- {
- fApp->Window()->View()->ForceRedraw();
- }
- void UpdateWindow()
- {
- fApp->Window()->View()->Update();
- }
-
-
- agg::platform_support* fAGG;
- AGGApplication* fApp;
- agg::pix_format_e fFormat;
- bool fFlipY;
- bigtime_t fTimerStart;
- BBitmap* fImages[agg::platform_support::max_images];
-
- char fAppPath[B_PATH_NAME_LENGTH];
- char fFilePath[B_PATH_NAME_LENGTH];
-};
-
-
- //------------------------------------------------------------------------
- platform_support::platform_support(pix_format_e format, bool flip_y) :
- m_specific(new platform_specific(this, format, flip_y)),
- m_format(format),
- m_bpp(32/*m_specific->m_bpp*/),
- m_window_flags(0),
- m_wait_mode(true),
- m_flip_y(flip_y),
- m_initial_width(10),
- m_initial_height(10)
- {
- strcpy(m_caption, "Anti-Grain Geometry Application");
- }
-
-
- //------------------------------------------------------------------------
- platform_support::~platform_support()
- {
- delete m_specific;
- }
-
- //------------------------------------------------------------------------
- void platform_support::caption(const char* cap)
- {
- strcpy(m_caption, cap);
- m_specific->SetTitle(cap);
- }
-
- //------------------------------------------------------------------------
- void platform_support::start_timer()
- {
- m_specific->StartTimer();
- }
-
- //------------------------------------------------------------------------
- double platform_support::elapsed_time() const
- {
- return m_specific->ElapsedTime();
- }
-
- //------------------------------------------------------------------------
- void* platform_support::raw_display_handler()
- {
- // TODO: if we ever support BDirectWindow here, that would
- // be the frame buffer pointer with offset to the window top left
- return NULL;
- }
-
- //------------------------------------------------------------------------
- void platform_support::message(const char* msg)
- {
- BAlert* alert = new BAlert("AGG Message", msg, "Ok");
- alert->Go(/*NULL*/);
- }
-
-
- //------------------------------------------------------------------------
- bool platform_support::init(unsigned width, unsigned height, unsigned flags)
- {
- m_initial_width = width;
- m_initial_height = height;
- m_window_flags = flags;
-
- if (m_specific->Init(width, height, flags)) {
- on_init();
- return true;
- }
-
- return false;
- }
-
-
- //------------------------------------------------------------------------
- int platform_support::run()
- {
- return m_specific->Run();
- }
-
-
- //------------------------------------------------------------------------
- const char* platform_support::img_ext() const { return ".ppm"; }
-
-
- const char* platform_support::full_file_name(const char* file_name)
- {
- sprintf(m_specific->fFilePath, "%s/%s", m_specific->fAppPath, file_name);
- return m_specific->fFilePath;
- }
-
-
- //------------------------------------------------------------------------
- bool platform_support::load_img(unsigned idx, const char* file)
- {
- if (idx < max_images)
- {
- char path[B_PATH_NAME_LENGTH];
- sprintf(path, "%s/%s%s", m_specific->fAppPath, file, img_ext());
- BBitmap* transBitmap = BTranslationUtils::GetBitmap(path);
- if (transBitmap && transBitmap->IsValid()) {
- if(transBitmap->ColorSpace() != B_RGB32 && transBitmap->ColorSpace() != B_RGBA32) {
- // ups we got a smart ass Translator making our live harder
- delete transBitmap;
- return false;
- }
-
- color_space format = B_RGB24;
-
- switch (m_format) {
- case pix_format_gray8:
- format = B_GRAY8;
- break;
- case pix_format_rgb555:
- format = B_RGB15;
- break;
- case pix_format_rgb565:
- format = B_RGB16;
- break;
- case pix_format_rgb24:
- format = B_RGB24_BIG;
- break;
- case pix_format_bgr24:
- format = B_RGB24;
- break;
- case pix_format_abgr32:
- case pix_format_argb32:
- case pix_format_bgra32:
- format = B_RGB32;
- break;
- case pix_format_rgba32:
- format = B_RGB32_BIG;
- break;
- }
- BBitmap* bitmap = new (nothrow) BBitmap(transBitmap->Bounds(), 0, format);
- if (!bitmap || !bitmap->IsValid()) {
- fprintf(stderr, "failed to allocate temporary bitmap!\n");
- delete transBitmap;
- delete bitmap;
- return false;
- }
-
- delete m_specific->fImages[idx];
-
- rendering_buffer rbuf_tmp;
- attach_buffer_to_BBitmap(rbuf_tmp, transBitmap, m_flip_y);
-
- m_specific->fImages[idx] = bitmap;
-
- attach_buffer_to_BBitmap(m_rbuf_img[idx], bitmap, m_flip_y);
-
- rendering_buffer* dst = &m_rbuf_img[idx];
-
- switch(m_format)
- {
- case pix_format_gray8:
- return false;
-// color_conv(dst, &rbuf_tmp, color_conv_bgra32_to_gray8()); break;
- break;
-
- case pix_format_rgb555:
- color_conv(dst, &rbuf_tmp, color_conv_bgra32_to_rgb555()); break;
- break;
-
- case pix_format_rgb565:
- color_conv(dst, &rbuf_tmp, color_conv_bgra32_to_rgb565()); break;
- break;
-
- case pix_format_rgb24:
- color_conv(dst, &rbuf_tmp, color_conv_bgra32_to_rgb24()); break;
- break;
-
- case pix_format_bgr24:
- color_conv(dst, &rbuf_tmp, color_conv_bgra32_to_bgr24()); break;
- break;
-
- case pix_format_abgr32:
- color_conv(dst, &rbuf_tmp, color_conv_bgra32_to_abgr32()); break;
- break;
-
- case pix_format_argb32:
- color_conv(dst, &rbuf_tmp, color_conv_bgra32_to_argb32()); break;
- break;
-
- case pix_format_bgra32:
- color_conv(dst, &rbuf_tmp, color_conv_bgra32_to_bgra32()); break;
- break;
-
- case pix_format_rgba32:
- color_conv(dst, &rbuf_tmp, color_conv_bgra32_to_rgba32()); break;
- break;
- }
- delete transBitmap;
-
- return true;
-
- } else {
- fprintf(stderr, "failed to load bitmap: '%s'\n", full_file_name(file));
- }
- }
- return false;
- }
-
-
-
- //------------------------------------------------------------------------
- bool platform_support::save_img(unsigned idx, const char* file)
- {
- // TODO: implement using BTranslatorRoster and friends
- return false;
- }
-
-
-
- //------------------------------------------------------------------------
- bool platform_support::create_img(unsigned idx, unsigned width, unsigned height)
- {
- if(idx < max_images)
- {
- if(width == 0) width = m_specific->fApp->Window()->View()->Bitmap()->Bounds().IntegerWidth() + 1;
- if(height == 0) height = m_specific->fApp->Window()->View()->Bitmap()->Bounds().IntegerHeight() + 1;
- BBitmap* bitmap = new BBitmap(BRect(0.0, 0.0, width - 1, height - 1), 0, B_RGBA32);;
- if (bitmap && bitmap->IsValid()) {
- delete m_specific->fImages[idx];
- m_specific->fImages[idx] = bitmap;
- attach_buffer_to_BBitmap(m_rbuf_img[idx], bitmap, m_flip_y);
- return true;
- } else {
- delete bitmap;
- }
- }
- return false;
- }
-
-
- //------------------------------------------------------------------------
- void platform_support::force_redraw()
- {
- m_specific->ForceRedraw();
- }
-
-
-
- //------------------------------------------------------------------------
- void platform_support::update_window()
- {
- m_specific->UpdateWindow();
- }
-
-
- //------------------------------------------------------------------------
- void platform_support::on_init() {}
- void platform_support::on_resize(int sx, int sy) {}
- void platform_support::on_idle() {}
- void platform_support::on_mouse_move(int x, int y, unsigned flags) {}
- void platform_support::on_mouse_button_down(int x, int y, unsigned flags) {}
- void platform_support::on_mouse_button_up(int x, int y, unsigned flags) {}
- void platform_support::on_key(int x, int y, unsigned key, unsigned flags) {}
- void platform_support::on_ctrl_change() {}
- void platform_support::on_draw() {}
- void platform_support::on_post_draw(void* raw_handler) {}
-}
-
-
-
-
-
-
-//----------------------------------------------------------------------------
-int agg_main(int argc, char* argv[]);
-
-
-
-int
-main(int argc, char* argv[])
-{
- return agg_main(argc, argv);
-}
-
-
-
-