Start to permeate more ownership.

This commit is contained in:
2025-08-10 17:27:52 -04:00
parent 640ccd02d3
commit 82512db44a
6 changed files with 14 additions and 13 deletions

View File

@ -49,10 +49,8 @@ private:
int isRoot() { return (root == NULL); } int isRoot() { return (root == NULL); }
void detachScaledBuf (FltkImgbuf *scaledBuf); void detachScaledBuf (FltkImgbuf *scaledBuf);
protected:
~FltkImgbuf ();
public: public:
~FltkImgbuf ();
FltkImgbuf (Type type, int width, int height, double gamma); FltkImgbuf (Type type, int width, int height, double gamma);
static void freeall (); static void freeall ();

View File

@ -692,10 +692,11 @@ void FltkPlatform::copySelection(const char *text)
Fl::copy(text, strlen(text), 0); Fl::copy(text, strlen(text), 0);
} }
core::Imgbuf *FltkPlatform::createImgbuf (core::Imgbuf::Type type, std::unique_ptr< core::Imgbuf >
FltkPlatform::createImgbuf( core::Imgbuf::Type type,
int width, int height, double gamma) int width, int height, double gamma)
{ {
return new FltkImgbuf (type, width, height, gamma); return std::make_unique< FltkImgbuf >( type, width, height, gamma );
} }
core::ui::ResourceFactory *FltkPlatform::getResourceFactory () core::ui::ResourceFactory *FltkPlatform::getResourceFactory ()

View File

@ -171,7 +171,7 @@ public:
core::style::Tooltip *createTooltip (const char *text); core::style::Tooltip *createTooltip (const char *text);
void cancelTooltip(); void cancelTooltip();
core::Imgbuf *createImgbuf (core::Imgbuf::Type type, int width, int height, std::unique_ptr< core::Imgbuf > createImgbuf( core::Imgbuf::Type type, int width, int height,
double gamma ); double gamma );
void copySelection(const char *text); void copySelection(const char *text);

View File

@ -414,8 +414,8 @@ public:
return platform->cancelTooltip (); return platform->cancelTooltip ();
} }
inline Imgbuf *createImgbuf (Imgbuf::Type type, int width, int height, inline std::unique_ptr< Imgbuf >
double gamma) createImgbuf( Imgbuf::Type type, int width, int height, double gamma )
{ {
return platform->createImgbuf (type, width, height, gamma); return platform->createImgbuf (type, width, height, gamma);
} }

View File

@ -1,6 +1,8 @@
#ifndef __DW_PLATFORM_HH__ #ifndef __DW_PLATFORM_HH__
#define __DW_PLATFORM_HH__ #define __DW_PLATFORM_HH__
#include <memory>
#ifndef __INCLUDED_FROM_DW_CORE_HH__ #ifndef __INCLUDED_FROM_DW_CORE_HH__
# error Do not include this file directly, use "core.hh" instead. # error Do not include this file directly, use "core.hh" instead.
#endif #endif
@ -152,7 +154,7 @@ public:
* *
* "gamma" is the value by which the image data is gamma-encoded. * "gamma" is the value by which the image data is gamma-encoded.
*/ */
virtual Imgbuf *createImgbuf (Imgbuf::Type type, int width, int height, virtual std::unique_ptr< Imgbuf > createImgbuf( Imgbuf::Type type, int width, int height,
double gamma )= 0; double gamma )= 0;
/** /**

View File

@ -104,7 +104,7 @@ void *a_Imgbuf_new(void *layout, int img_type, uint_t width, uint_t height,
} }
return (void*)((Layout*)layout)->createImgbuf(Imgbuf::RGB, width, height, return (void*)((Layout*)layout)->createImgbuf(Imgbuf::RGB, width, height,
gamma); gamma).release();
} }
/** /**