mirror of https://github.com/ImVexed/muon.git
Bump to Ultralight 1.1
This commit is contained in:
parent
eb6e92adf1
commit
c0297f9539
Binary file not shown.
|
@ -15,6 +15,7 @@
|
|||
#include "Defines.h"
|
||||
#include <Ultralight/RefPtr.h>
|
||||
#include <Ultralight/Renderer.h>
|
||||
#include <Ultralight/platform/Config.h>
|
||||
|
||||
namespace ultralight {
|
||||
|
||||
|
@ -37,6 +38,36 @@ public:
|
|||
virtual void OnUpdate() {}
|
||||
};
|
||||
|
||||
///
|
||||
/// App-specific settings.
|
||||
///
|
||||
struct AExport Settings {
|
||||
///
|
||||
/// The root file path for our file system. You should set this to the
|
||||
/// relative path where all of your app data is.
|
||||
///
|
||||
/// This will be used to resolve all file URLs, eg file:///page.html
|
||||
///
|
||||
/// @note By default, on macOS we use the app bundle's @resource_path,
|
||||
/// on all other platforms we use the "./assets/" directory relative
|
||||
/// to the executable's directory.
|
||||
///
|
||||
#ifdef __APPLE__
|
||||
String file_system_path = "@resource_path";
|
||||
#else
|
||||
String file_system_path = "./assets/";
|
||||
#endif
|
||||
|
||||
///
|
||||
/// Whether or not we should load and compile shaders from the file system
|
||||
/// (eg, from the /shaders/ path, relative to file_system_path).
|
||||
///
|
||||
/// If this is false (the default), we will instead load pre-compiled shaders
|
||||
/// from memory which speeds up application startup time.
|
||||
///
|
||||
bool load_shaders_from_file_system = false;
|
||||
};
|
||||
|
||||
///
|
||||
/// Main application class.
|
||||
///
|
||||
|
@ -45,18 +76,29 @@ public:
|
|||
///
|
||||
/// Create the App singleton.
|
||||
///
|
||||
/// @note You should only create one of these per application lifetime.
|
||||
///
|
||||
/// App maintains its own Renderer instance, make sure to set your
|
||||
/// Config before creating App. (@see Platform::set_config)
|
||||
/// @param settings Settings to customize App runtime behavior.
|
||||
///
|
||||
static Ref<App> Create();
|
||||
/// @param config Config options for the Ultralight renderer.
|
||||
///
|
||||
/// @return Returns a ref-pointer to the created App instance.
|
||||
///
|
||||
/// @note You should only create one of these per application lifetime.
|
||||
///
|
||||
/// @note Certain Config options may be overridden during App creation,
|
||||
/// most commonly Config::face_winding and Config::device_scale_hint.
|
||||
///
|
||||
static Ref<App> Create(Settings settings = Settings(), Config config = Config());
|
||||
|
||||
///
|
||||
/// Get the App singleton.
|
||||
///
|
||||
static App* instance();
|
||||
|
||||
///
|
||||
/// Get the settings this App was created with.
|
||||
///
|
||||
virtual const Settings& settings() const = 0;
|
||||
|
||||
///
|
||||
/// Set the main window. You must set this before calling Run.
|
||||
///
|
||||
|
@ -117,4 +159,4 @@ protected:
|
|||
virtual ~App();
|
||||
};
|
||||
|
||||
} // namespace ultralight
|
||||
} // namespace ultralight
|
||||
|
|
|
@ -18,18 +18,19 @@
|
|||
|
||||
#if defined(__WIN32__) || defined(_WIN32)
|
||||
# if defined(APPCORE_IMPLEMENTATION)
|
||||
# define AExport __declspec(dllexport)
|
||||
# define ACExport __declspec(dllexport)
|
||||
# else
|
||||
# define AExport __declspec(dllimport)
|
||||
# define ACExport __declspec(dllimport)
|
||||
# endif
|
||||
#else
|
||||
# define AExport __attribute__((visibility("default")))
|
||||
# define ACExport __attribute__((visibility("default")))
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct C_Settings* ULSettings;
|
||||
typedef struct C_App* ULApp;
|
||||
typedef struct C_Window* ULWindow;
|
||||
typedef struct C_Monitor* ULMonitor;
|
||||
|
@ -45,37 +46,73 @@ typedef enum {
|
|||
kWindowFlags_Maximizable = 1 << 3,
|
||||
} ULWindowFlags;
|
||||
|
||||
///
|
||||
/// Create settings with default values (see <AppCore/App.h>).
|
||||
///
|
||||
ACExport ULSettings ulCreateSettings();
|
||||
|
||||
///
|
||||
/// Destroy settings.
|
||||
///
|
||||
ACExport void ulDestroySettings(ULSettings settings);
|
||||
|
||||
///
|
||||
/// Set the root file path for our file system, you should set this to the
|
||||
/// relative path where all of your app data is.
|
||||
///
|
||||
/// This will be used to resolve all file URLs, eg file:///page.html
|
||||
///
|
||||
/// @note By default, on macOS we use the app bundle's @resource_path,
|
||||
/// on all other platforms we use the "./assets/" directory relative
|
||||
/// to the executable's directory.
|
||||
///
|
||||
ACExport void ulSettingsSetFileSystemPath(ULSettings settings, ULString path);
|
||||
|
||||
///
|
||||
/// Set whether or not we should load and compile shaders from the file system
|
||||
/// (eg, from the /shaders/ path, relative to file_system_path).
|
||||
///
|
||||
/// If this is false (the default), we will instead load pre-compiled shaders
|
||||
/// from memory which speeds up application startup time.
|
||||
///
|
||||
ACExport void ulSettingsSetLoadShadersFromFileSystem(ULSettings settings,
|
||||
bool enabled);
|
||||
|
||||
///
|
||||
/// Create the App singleton.
|
||||
///
|
||||
/// @param config Configuration settings to use.
|
||||
/// @param settings Settings to customize App runtime behavior. You can pass
|
||||
/// NULL for this parameter to use default settings.
|
||||
///
|
||||
/// @param config Config options for the Ultralight renderer. You can pass
|
||||
/// NULL for this parameter to use default config.
|
||||
///
|
||||
/// @note You should only create one of these per application lifetime.
|
||||
///
|
||||
/// App maintains its own Renderer instance, make sure to set your
|
||||
/// Config before creating App. (@see Platform::set_config)
|
||||
/// @note Certain Config options may be overridden during App creation,
|
||||
/// most commonly Config::face_winding and Config::device_scale_hint.
|
||||
///
|
||||
AExport ULApp ulCreateApp(ULConfig config);
|
||||
ACExport ULApp ulCreateApp(ULSettings settings, ULConfig config);
|
||||
|
||||
///
|
||||
/// Destroy the App instance.
|
||||
///
|
||||
AExport void ulDestroyApp(ULApp app);
|
||||
ACExport void ulDestroyApp(ULApp app);
|
||||
|
||||
///
|
||||
/// Set the main window. You must set this before calling ulAppRun.
|
||||
/// Set the main window, you must set this before calling ulAppRun.
|
||||
///
|
||||
/// @param window The window to use for all rendering.
|
||||
///
|
||||
/// @note We currently only support one Window per App, this will change
|
||||
/// later once we add support for multiple driver instances.
|
||||
///
|
||||
AExport void ulAppSetWindow(ULApp app, ULWindow window);
|
||||
ACExport void ulAppSetWindow(ULApp app, ULWindow window);
|
||||
|
||||
///
|
||||
/// Get the main window.
|
||||
///
|
||||
AExport ULWindow ulAppGetWindow(ULApp app);
|
||||
ACExport ULWindow ulAppGetWindow(ULApp app);
|
||||
|
||||
typedef void
|
||||
(*ULUpdateCallback) (void* user_data);
|
||||
|
@ -87,52 +124,50 @@ typedef void
|
|||
/// @note This event is fired right before the run loop calls
|
||||
/// Renderer::Update and Renderer::Render.
|
||||
///
|
||||
AExport void ulAppSetUpdateCallback(ULApp app, ULUpdateCallback callback,
|
||||
void* user_data);
|
||||
ACExport void ulAppSetUpdateCallback(ULApp app, ULUpdateCallback callback,
|
||||
void* user_data);
|
||||
|
||||
///
|
||||
/// Whether or not the App is running.
|
||||
///
|
||||
AExport bool ulAppIsRunning(ULApp app);
|
||||
ACExport bool ulAppIsRunning(ULApp app);
|
||||
|
||||
///
|
||||
/// Get the main monitor (this is never NULL).
|
||||
///
|
||||
/// @note We'll add monitor enumeration later.
|
||||
///
|
||||
AExport ULMonitor ulAppGetMainMonitor(ULApp app);
|
||||
ACExport ULMonitor ulAppGetMainMonitor(ULApp app);
|
||||
|
||||
///
|
||||
/// Get the underlying Renderer instance.
|
||||
///
|
||||
AExport ULRenderer ulAppGetRenderer(ULApp app);
|
||||
ACExport ULRenderer ulAppGetRenderer(ULApp app);
|
||||
|
||||
///
|
||||
/// Run the main loop.
|
||||
/// Run the main loop, make sure to call ulAppSetWindow before calling this.
|
||||
///
|
||||
/// @note Make sure to call ulAppSetWindow before calling this.
|
||||
///
|
||||
AExport void ulAppRun(ULApp app);
|
||||
ACExport void ulAppRun(ULApp app);
|
||||
|
||||
///
|
||||
/// Quit the application.
|
||||
///
|
||||
AExport void ulAppQuit(ULApp app);
|
||||
ACExport void ulAppQuit(ULApp app);
|
||||
|
||||
///
|
||||
/// Get the monitor's DPI scale (1.0 = 100%).
|
||||
///
|
||||
AExport double ulMonitorGetScale(ULMonitor monitor);
|
||||
ACExport double ulMonitorGetScale(ULMonitor monitor);
|
||||
|
||||
///
|
||||
/// Get the width of the monitor (in device coordinates)
|
||||
/// Get the width of the monitor (in device coordinates).
|
||||
///
|
||||
AExport unsigned int ulMonitorGetWidth(ULMonitor monitor);
|
||||
ACExport unsigned int ulMonitorGetWidth(ULMonitor monitor);
|
||||
|
||||
///
|
||||
/// Get the height of the monitor (in device coordinates)
|
||||
/// Get the height of the monitor (in device coordinates).
|
||||
///
|
||||
AExport unsigned int ulMonitorGetHeight(ULMonitor monitor);
|
||||
ACExport unsigned int ulMonitorGetHeight(ULMonitor monitor);
|
||||
|
||||
///
|
||||
/// Create a new Window.
|
||||
|
@ -147,14 +182,14 @@ AExport unsigned int ulMonitorGetHeight(ULMonitor monitor);
|
|||
///
|
||||
/// @param window_flags Various window flags.
|
||||
///
|
||||
AExport ULWindow ulCreateWindow(ULMonitor monitor, unsigned int width,
|
||||
unsigned int height, bool fullscreen,
|
||||
unsigned int window_flags);
|
||||
ACExport ULWindow ulCreateWindow(ULMonitor monitor, unsigned int width,
|
||||
unsigned int height, bool fullscreen,
|
||||
unsigned int window_flags);
|
||||
|
||||
///
|
||||
/// Destroy a Window.
|
||||
///
|
||||
AExport void ulDestroyWindow(ULWindow window);
|
||||
ACExport void ulDestroyWindow(ULWindow window);
|
||||
|
||||
typedef void
|
||||
(*ULCloseCallback) (void* user_data);
|
||||
|
@ -162,9 +197,9 @@ typedef void
|
|||
///
|
||||
/// Set a callback to be notified when a window closes.
|
||||
///
|
||||
AExport void ulWindowSetCloseCallback(ULWindow window,
|
||||
ULCloseCallback callback,
|
||||
void* user_data);
|
||||
ACExport void ulWindowSetCloseCallback(ULWindow window,
|
||||
ULCloseCallback callback,
|
||||
void* user_data);
|
||||
|
||||
typedef void
|
||||
(*ULResizeCallback) (void* user_data, unsigned int width, unsigned int height);
|
||||
|
@ -173,54 +208,54 @@ typedef void
|
|||
/// Set a callback to be notified when a window resizes
|
||||
/// (parameters are passed back in device coordinates).
|
||||
///
|
||||
AExport void ulWindowSetResizeCallback(ULWindow window,
|
||||
ULResizeCallback callback,
|
||||
void* user_data);
|
||||
ACExport void ulWindowSetResizeCallback(ULWindow window,
|
||||
ULResizeCallback callback,
|
||||
void* user_data);
|
||||
|
||||
///
|
||||
/// Get window width (in device coordinates).
|
||||
///
|
||||
AExport unsigned int ulWindowGetWidth(ULWindow window);
|
||||
ACExport unsigned int ulWindowGetWidth(ULWindow window);
|
||||
|
||||
///
|
||||
/// Get window height (in device coordinates).
|
||||
///
|
||||
AExport unsigned int ulWindowGetHeight(ULWindow window);
|
||||
ACExport unsigned int ulWindowGetHeight(ULWindow window);
|
||||
|
||||
///
|
||||
/// Get whether or not a window is fullscreen.
|
||||
///
|
||||
AExport bool ulWindowIsFullscreen(ULWindow window);
|
||||
ACExport bool ulWindowIsFullscreen(ULWindow window);
|
||||
|
||||
///
|
||||
/// Get the DPI scale of a window.
|
||||
///
|
||||
AExport double ulWindowGetScale(ULWindow window);
|
||||
ACExport double ulWindowGetScale(ULWindow window);
|
||||
|
||||
///
|
||||
/// Set the window title.
|
||||
///
|
||||
AExport void ulWindowSetTitle(ULWindow window, const char* title);
|
||||
ACExport void ulWindowSetTitle(ULWindow window, const char* title);
|
||||
|
||||
///
|
||||
/// Set the cursor for a window.
|
||||
///
|
||||
AExport void ulWindowSetCursor(ULWindow window, ULCursor cursor);
|
||||
ACExport void ulWindowSetCursor(ULWindow window, ULCursor cursor);
|
||||
|
||||
///
|
||||
/// Close a window.
|
||||
///
|
||||
AExport void ulWindowClose(ULWindow window);
|
||||
ACExport void ulWindowClose(ULWindow window);
|
||||
|
||||
///
|
||||
/// Convert device coordinates to pixels using the current DPI scale.
|
||||
///
|
||||
AExport int ulWindowDeviceToPixel(ULWindow window, int val);
|
||||
ACExport int ulWindowDeviceToPixel(ULWindow window, int val);
|
||||
|
||||
///
|
||||
/// Convert pixels to device coordinates using the current DPI scale.
|
||||
///
|
||||
AExport int ulWindowPixelsToDevice(ULWindow window, int val);
|
||||
ACExport int ulWindowPixelsToDevice(ULWindow window, int val);
|
||||
|
||||
///
|
||||
/// Create a new Overlay.
|
||||
|
@ -241,82 +276,82 @@ AExport int ulWindowPixelsToDevice(ULWindow window, int val);
|
|||
/// @note Each Overlay is essentially a View and an on-screen quad. You should
|
||||
/// create the Overlay then load content into the underlying View.
|
||||
///
|
||||
AExport ULOverlay ulCreateOverlay(ULWindow window, unsigned int width,
|
||||
unsigned int height, int x, int y);
|
||||
ACExport ULOverlay ulCreateOverlay(ULWindow window, unsigned int width,
|
||||
unsigned int height, int x, int y);
|
||||
|
||||
///
|
||||
/// Destroy an overlay.
|
||||
///
|
||||
AExport void ulDestroyOverlay(ULOverlay overlay);
|
||||
ACExport void ulDestroyOverlay(ULOverlay overlay);
|
||||
|
||||
///
|
||||
/// Get the underlying View.
|
||||
///
|
||||
AExport ULView ulOverlayGetView(ULOverlay overlay);
|
||||
ACExport ULView ulOverlayGetView(ULOverlay overlay);
|
||||
|
||||
///
|
||||
/// Get the width (in device coordinates).
|
||||
///
|
||||
AExport unsigned int ulOverlayGetWidth(ULOverlay overlay);
|
||||
ACExport unsigned int ulOverlayGetWidth(ULOverlay overlay);
|
||||
|
||||
///
|
||||
/// Get the height (in device coordinates).
|
||||
///
|
||||
AExport unsigned int ulOverlayGetHeight(ULOverlay overlay);
|
||||
ACExport unsigned int ulOverlayGetHeight(ULOverlay overlay);
|
||||
|
||||
///
|
||||
/// Get the x-position (offset from the left of the Window), in device
|
||||
/// coordinates.
|
||||
///
|
||||
AExport int ulOverlayGetX(ULOverlay overlay);
|
||||
ACExport int ulOverlayGetX(ULOverlay overlay);
|
||||
|
||||
///
|
||||
/// Get the y-position (offset from the top of the Window), in device
|
||||
/// coordinates.
|
||||
///
|
||||
AExport int ulOverlayGetY(ULOverlay overlay);
|
||||
ACExport int ulOverlayGetY(ULOverlay overlay);
|
||||
|
||||
///
|
||||
/// Move the overlay to a new position (in device coordinates).
|
||||
///
|
||||
AExport void ulOverlayMoveTo(ULOverlay overlay, int x, int y);
|
||||
ACExport void ulOverlayMoveTo(ULOverlay overlay, int x, int y);
|
||||
|
||||
///
|
||||
/// Resize the overlay (and underlying View), dimensions should be
|
||||
/// specified in device coordinates.
|
||||
///
|
||||
AExport void ulOverlayResize(ULOverlay overlay, unsigned int width,
|
||||
unsigned int height);
|
||||
ACExport void ulOverlayResize(ULOverlay overlay, unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
///
|
||||
/// Whether or not the overlay is hidden (not drawn).
|
||||
///
|
||||
AExport bool ulOverlayIsHidden(ULOverlay overlay);
|
||||
ACExport bool ulOverlayIsHidden(ULOverlay overlay);
|
||||
|
||||
///
|
||||
/// Hide the overlay (will no longer be drawn)
|
||||
/// Hide the overlay (will no longer be drawn).
|
||||
///
|
||||
AExport void ulOverlayHide(ULOverlay overlay);
|
||||
ACExport void ulOverlayHide(ULOverlay overlay);
|
||||
|
||||
///
|
||||
/// Show the overlay.
|
||||
///
|
||||
AExport void ulOverlayShow(ULOverlay overlay);
|
||||
ACExport void ulOverlayShow(ULOverlay overlay);
|
||||
|
||||
///
|
||||
/// Whether or not an overlay has keyboard focus.
|
||||
///
|
||||
AExport bool ulOverlayHasFocus(ULOverlay overlay);
|
||||
ACExport bool ulOverlayHasFocus(ULOverlay overlay);
|
||||
|
||||
///
|
||||
/// Grant this overlay exclusive keyboard focus.
|
||||
///
|
||||
AExport void ulOverlayFocus(ULOverlay overlay);
|
||||
ACExport void ulOverlayFocus(ULOverlay overlay);
|
||||
|
||||
///
|
||||
/// Remove keyboard focus.
|
||||
///
|
||||
AExport void ulOverlayUnfocus(ULOverlay overlay);
|
||||
ACExport void ulOverlayUnfocus(ULOverlay overlay);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -24,17 +24,33 @@ namespace ultralight {
|
|||
/// The various Bitmap formats.
|
||||
///
|
||||
enum UExport BitmapFormat {
|
||||
/// Alpha-channel only, 8-bits per channel (8-bits in total per pixel)
|
||||
kBitmapFormat_A8,
|
||||
/**
|
||||
* Alpha channel only, 8-bits per pixel.
|
||||
*
|
||||
* Encoding: 8-bits per channel, unsigned normalized.
|
||||
*
|
||||
* Color-space: Linear (no gamma), alpha-coverage only.
|
||||
*/
|
||||
kBitmapFormat_A8_UNORM,
|
||||
|
||||
/// Red Green Blue Alpha, 8-bits per channel (32-bits in total per pixel)
|
||||
kBitmapFormat_RGBA8
|
||||
/**
|
||||
* Blue Green Red Alpha channels, 32-bits per pixel.
|
||||
*
|
||||
* Encoding: 8-bits per channel, unsigned normalized.
|
||||
*
|
||||
* Color-space: sRGB gamma with premultiplied linear alpha channel.
|
||||
*
|
||||
* NOTE: Alpha is premultiplied with BGR channels _before_ sRGB gamma is
|
||||
* applied so we can use sRGB conversion hardware and perform all
|
||||
* blending in linear space on GPU.
|
||||
*/
|
||||
kBitmapFormat_BGRA8_UNORM_SRGB,
|
||||
};
|
||||
|
||||
///
|
||||
/// Macro to get the bytes per pixel from a BitmapFormat
|
||||
///
|
||||
#define GetBytesPerPixel(x) (x == kBitmapFormat_A8? 1 : 4)
|
||||
#define GetBytesPerPixel(x) (x == kBitmapFormat_A8_UNORM? 1 : 4)
|
||||
|
||||
///
|
||||
/// @brief Bitmap container with basic blitting and conversion routines.
|
||||
|
@ -58,7 +74,8 @@ class UExport Bitmap : public RefCounted {
|
|||
///
|
||||
/// @return A ref-pointer to a new Bitmap instance.
|
||||
///
|
||||
static Ref<Bitmap> Create(uint32_t width, uint32_t height, BitmapFormat format);
|
||||
static Ref<Bitmap> Create(uint32_t width, uint32_t height,
|
||||
BitmapFormat format);
|
||||
|
||||
///
|
||||
/// Create a Bitmap with existing pixels and configuration.
|
||||
|
@ -81,10 +98,20 @@ class UExport Bitmap : public RefCounted {
|
|||
/// raw pixels passed in as its own, but you are still
|
||||
/// responsible for destroying your buffer afterwards.
|
||||
///
|
||||
/// @param fixup_gamma Whether or not we should reinterpret the source
|
||||
/// as an sRGB bitmap with premultiplied alpha applied
|
||||
/// after the gamma function (typical of PNGs). We
|
||||
/// expect all premultiplication to be applied before
|
||||
/// the gamma function so we can blend properly in
|
||||
/// linear space. Only valid for
|
||||
/// kBitmapFormat_BGRA8_UNORM_SRGB.
|
||||
///
|
||||
/// @return A ref-pointer to a new Bitmap instance.
|
||||
///
|
||||
static Ref<Bitmap> Create(uint32_t width, uint32_t height, BitmapFormat format,
|
||||
uint32_t row_bytes, const void* pixels, size_t size, bool should_copy = true);
|
||||
static Ref<Bitmap> Create(uint32_t width, uint32_t height,
|
||||
BitmapFormat format, uint32_t row_bytes,
|
||||
const void* pixels, size_t size,
|
||||
bool should_copy = true, bool fixup_gamma = false);
|
||||
|
||||
///
|
||||
/// Create a bitmap from a deep copy of another Bitmap.
|
||||
|
@ -185,7 +212,7 @@ class UExport Bitmap : public RefCounted {
|
|||
///
|
||||
/// @note Formats do not need to match. Bitmap formats will be converted
|
||||
/// to one another automatically. Note that when converting from
|
||||
/// RGBA8 to A8, only the Red channel will be used.
|
||||
/// BGRA8 to A8, only the Blue channel will be used.
|
||||
///
|
||||
/// @param src_rect The source rectangle, relative to src bitmap.
|
||||
///
|
||||
|
@ -212,6 +239,24 @@ class UExport Bitmap : public RefCounted {
|
|||
///
|
||||
virtual bool WritePNG(const char* path) = 0;
|
||||
|
||||
|
||||
///
|
||||
/// Make a resized copy of this bitmap by writing to a pre-allocated
|
||||
/// destination bitmap.
|
||||
///
|
||||
/// @param destination The bitmap to store the result in, the width and
|
||||
/// height of the destination will be used.
|
||||
///
|
||||
/// @param high_quality Whether or not a high quality resampling will be
|
||||
/// used during the resize. (Otherwise, just uses fast
|
||||
/// nearest-neighbor sampling)
|
||||
///
|
||||
/// @return Whether or not the operation succeeded. This operation is only
|
||||
/// valid if both formats are kBitmapFormat_BGRA8_UNORM_SRGB and
|
||||
/// both the source and destination are non-empty.
|
||||
///
|
||||
virtual bool Resample(Ref<Bitmap> destination, bool high_quality) = 0;
|
||||
|
||||
protected:
|
||||
Bitmap();
|
||||
virtual ~Bitmap();
|
||||
|
|
|
@ -179,62 +179,86 @@ ULExport ULConfig ulCreateConfig();
|
|||
ULExport void ulDestroyConfig(ULConfig config);
|
||||
|
||||
///
|
||||
/// Set whether images should be enabled (Default = True)
|
||||
/// Set whether images should be enabled (Default = True).
|
||||
///
|
||||
ULExport void ulConfigSetEnableImages(ULConfig config, bool enabled);
|
||||
|
||||
///
|
||||
/// Set whether JavaScript should be eanbled (Default = True)
|
||||
/// Set whether JavaScript should be eanbled (Default = True).
|
||||
///
|
||||
ULExport void ulConfigSetEnableJavaScript(ULConfig config, bool enabled);
|
||||
|
||||
///
|
||||
/// Set whether we should use BGRA byte order (instead of RGBA) for View
|
||||
/// bitmaps. (Default = False)
|
||||
/// bitmaps (Default = False).
|
||||
///
|
||||
ULExport void ulConfigSetUseBGRAForOffscreenRendering(ULConfig config,
|
||||
bool enabled);
|
||||
|
||||
///
|
||||
/// Set the amount that the application DPI has been scaled, used for
|
||||
/// scaling device coordinates to pixels and oversampling raster shapes.
|
||||
/// (Default = 1.0)
|
||||
/// scaling device coordinates to pixels and oversampling raster shapes
|
||||
/// (Default = 1.0).
|
||||
///
|
||||
ULExport void ulConfigSetDeviceScaleHint(ULConfig config, double value);
|
||||
|
||||
///
|
||||
/// Set default font-family to use (Default = Times New Roman)
|
||||
/// Set default font-family to use (Default = Times New Roman).
|
||||
///
|
||||
ULExport void ulConfigSetFontFamilyStandard(ULConfig config,
|
||||
ULString font_name);
|
||||
|
||||
///
|
||||
/// Set default font-family to use for fixed fonts, eg <pre> and <code>.
|
||||
/// (Default = Courier New)
|
||||
/// Set default font-family to use for fixed fonts, eg <pre> and <code>
|
||||
/// (Default = Courier New).
|
||||
///
|
||||
ULExport void ulConfigSetFontFamilyFixed(ULConfig config, ULString font_name);
|
||||
|
||||
///
|
||||
/// Set default font-family to use for serif fonts. (Default = Times New Roman)
|
||||
/// Set default font-family to use for serif fonts (Default = Times New Roman).
|
||||
///
|
||||
ULExport void ulConfigSetFontFamilySerif(ULConfig config, ULString font_name);
|
||||
|
||||
///
|
||||
/// Set default font-family to use for sans-serif fonts. (Default = Arial)
|
||||
/// Set default font-family to use for sans-serif fonts (Default = Arial).
|
||||
///
|
||||
ULExport void ulConfigSetFontFamilySansSerif(ULConfig config,
|
||||
ULString font_name);
|
||||
|
||||
///
|
||||
/// Set user agent string. (See <Ultralight/platform/Config.h> for the default)
|
||||
/// Set user agent string (See <Ultralight/platform/Config.h> for the default).
|
||||
///
|
||||
ULExport void ulConfigSetUserAgent(ULConfig config, ULString agent_string);
|
||||
|
||||
///
|
||||
/// Set user stylesheet (CSS). (Default = Empty)
|
||||
/// Set user stylesheet (CSS) (Default = Empty).
|
||||
///
|
||||
ULExport void ulConfigSetUserStylesheet(ULConfig config, ULString css_string);
|
||||
|
||||
///
|
||||
/// Set whether or not we should continuously repaint any Views or compositor
|
||||
/// layers, regardless if they are dirty or not. This is mainly used to
|
||||
/// diagnose painting/shader issues. (Default = False)
|
||||
///
|
||||
ULExport void ulConfigSetForceRepaint(ULConfig config, bool enabled);
|
||||
|
||||
///
|
||||
/// Set the amount of time to wait before triggering another repaint when a
|
||||
/// CSS animation is active. (Default = 1.0 / 60.0)
|
||||
///
|
||||
ULExport void ulConfigSetAnimationTimerDelay(ULConfig config, double delay);
|
||||
|
||||
///
|
||||
/// Set the size of WebCore's memory cache for decoded images, scripts, and
|
||||
/// other assets in bytes. (Default = 64 * 1024 * 1024)
|
||||
///
|
||||
ULExport void ulConfigSetMemoryCacheSize(ULConfig config, unsigned int size);
|
||||
|
||||
///
|
||||
/// Set the number of pages to keep in the cache. (Default = 0)
|
||||
///
|
||||
ULExport void ulConfigSetPageCacheSize(ULConfig config, unsigned int size);
|
||||
|
||||
/******************************************************************************
|
||||
* Renderer
|
||||
*****************************************************************************/
|
||||
|
@ -250,7 +274,7 @@ ULExport ULRenderer ulCreateRenderer(ULConfig config);
|
|||
ULExport void ulDestroyRenderer(ULRenderer renderer);
|
||||
|
||||
///
|
||||
/// Update timers and dispatch internal callbacks (JavaScript and network)
|
||||
/// Update timers and dispatch internal callbacks (JavaScript and network).
|
||||
///
|
||||
ULExport void ulUpdate(ULRenderer renderer);
|
||||
|
||||
|
@ -294,7 +318,7 @@ ULExport ULString ulViewGetTitle(ULView view);
|
|||
ULExport bool ulViewIsLoading(ULView view);
|
||||
|
||||
///
|
||||
/// Check if bitmap is dirty (has changed since last call to ulViewGetBitmap)
|
||||
/// Check if bitmap is dirty (has changed since last call to ulViewGetBitmap).
|
||||
///
|
||||
ULExport bool ulViewIsBitmapDirty(ULView view);
|
||||
|
||||
|
@ -306,78 +330,78 @@ ULExport bool ulViewIsBitmapDirty(ULView view);
|
|||
ULExport ULBitmap ulViewGetBitmap(ULView view);
|
||||
|
||||
///
|
||||
/// Load a raw string of html
|
||||
/// Load a raw string of HTML.
|
||||
///
|
||||
ULExport void ulViewLoadHTML(ULView view, ULString html_string);
|
||||
|
||||
///
|
||||
/// Load a URL into main frame
|
||||
/// Load a URL into main frame.
|
||||
///
|
||||
ULExport void ulViewLoadURL(ULView view, ULString url_string);
|
||||
|
||||
///
|
||||
/// Resize view to a certain width and height (in device coordinates)
|
||||
/// Resize view to a certain width and height (in device coordinates).
|
||||
///
|
||||
ULExport void ulViewResize(ULView view, unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
///
|
||||
/// Get the page's JSContext for use with JavaScriptCore API
|
||||
/// Get the page's JSContext for use with JavaScriptCore API.
|
||||
///
|
||||
ULExport JSContextRef ulViewGetJSContext(ULView view);
|
||||
|
||||
///
|
||||
/// Evaluate a raw string of JavaScript and return result
|
||||
/// Evaluate a raw string of JavaScript and return result.
|
||||
///
|
||||
ULExport JSValueRef ulViewEvaluateScript(ULView view, ULString js_string);
|
||||
|
||||
///
|
||||
/// Check if can navigate backwards in history
|
||||
/// Check if can navigate backwards in history.
|
||||
///
|
||||
ULExport bool ulViewCanGoBack(ULView view);
|
||||
|
||||
///
|
||||
/// Check if can navigate forwards in history
|
||||
/// Check if can navigate forwards in history.
|
||||
///
|
||||
ULExport bool ulViewCanGoForward(ULView view);
|
||||
|
||||
///
|
||||
/// Navigate backwards in history
|
||||
/// Navigate backwards in history.
|
||||
///
|
||||
ULExport void ulViewGoBack(ULView view);
|
||||
|
||||
///
|
||||
/// Navigate forwards in history
|
||||
/// Navigate forwards in history.
|
||||
///
|
||||
ULExport void ulViewGoForward(ULView view);
|
||||
|
||||
///
|
||||
/// Navigate to arbitrary offset in history
|
||||
/// Navigate to arbitrary offset in history.
|
||||
///
|
||||
ULExport void ulViewGoToHistoryOffset(ULView view, int offset);
|
||||
|
||||
///
|
||||
/// Reload current page
|
||||
/// Reload current page.
|
||||
///
|
||||
ULExport void ulViewReload(ULView view);
|
||||
|
||||
///
|
||||
/// Stop all page loads
|
||||
/// Stop all page loads.
|
||||
///
|
||||
ULExport void ulViewStop(ULView view);
|
||||
|
||||
///
|
||||
/// Fire a keyboard event
|
||||
/// Fire a keyboard event.
|
||||
///
|
||||
ULExport void ulViewFireKeyEvent(ULView view, ULKeyEvent key_event);
|
||||
|
||||
///
|
||||
/// Fire a mouse event
|
||||
/// Fire a mouse event.
|
||||
///
|
||||
ULExport void ulViewFireMouseEvent(ULView view, ULMouseEvent mouse_event);
|
||||
|
||||
///
|
||||
/// Fire a scroll event
|
||||
/// Fire a scroll event.
|
||||
///
|
||||
ULExport void ulViewFireScrollEvent(ULView view, ULScrollEvent scroll_event);
|
||||
|
||||
|
@ -385,7 +409,7 @@ typedef void
|
|||
(*ULChangeTitleCallback) (void* user_data, ULView caller, ULString title);
|
||||
|
||||
///
|
||||
/// Set callback for when the page title changes
|
||||
/// Set callback for when the page title changes.
|
||||
///
|
||||
ULExport void ulViewSetChangeTitleCallback(ULView view,
|
||||
ULChangeTitleCallback callback,
|
||||
|
@ -395,7 +419,7 @@ typedef void
|
|||
(*ULChangeURLCallback) (void* user_data, ULView caller, ULString url);
|
||||
|
||||
///
|
||||
/// Set callback for when the page URL changes
|
||||
/// Set callback for when the page URL changes.
|
||||
///
|
||||
ULExport void ulViewSetChangeURLCallback(ULView view,
|
||||
ULChangeURLCallback callback,
|
||||
|
@ -405,7 +429,7 @@ typedef void
|
|||
(*ULChangeTooltipCallback) (void* user_data, ULView caller, ULString tooltip);
|
||||
|
||||
///
|
||||
/// Set callback for when the tooltip changes (usually result of a mouse hover)
|
||||
/// Set callback for when the tooltip changes (usually result of a mouse hover).
|
||||
///
|
||||
ULExport void ulViewSetChangeTooltipCallback(ULView view,
|
||||
ULChangeTooltipCallback callback,
|
||||
|
@ -415,7 +439,7 @@ typedef void
|
|||
(*ULChangeCursorCallback) (void* user_data, ULView caller, ULCursor cursor);
|
||||
|
||||
///
|
||||
/// Set callback for when the mouse cursor changes
|
||||
/// Set callback for when the mouse cursor changes.
|
||||
///
|
||||
ULExport void ulViewSetChangeCursorCallback(ULView view,
|
||||
ULChangeCursorCallback callback,
|
||||
|
@ -430,7 +454,7 @@ typedef void
|
|||
|
||||
///
|
||||
/// Set callback for when a message is added to the console (useful for
|
||||
/// JavaScript / network errors and debugging)
|
||||
/// JavaScript / network errors and debugging).
|
||||
///
|
||||
ULExport void ulViewSetAddConsoleMessageCallback(ULView view,
|
||||
ULAddConsoleMessageCallback callback,
|
||||
|
@ -440,7 +464,7 @@ typedef void
|
|||
(*ULBeginLoadingCallback) (void* user_data, ULView caller);
|
||||
|
||||
///
|
||||
/// Set callback for when the page begins loading new URL into main frame
|
||||
/// Set callback for when the page begins loading new URL into main frame.
|
||||
///
|
||||
ULExport void ulViewSetBeginLoadingCallback(ULView view,
|
||||
ULBeginLoadingCallback callback,
|
||||
|
@ -450,7 +474,7 @@ typedef void
|
|||
(*ULFinishLoadingCallback) (void* user_data, ULView caller);
|
||||
|
||||
///
|
||||
/// Set callback for when the page finishes loading URL into main frame
|
||||
/// Set callback for when the page finishes loading URL into main frame.
|
||||
///
|
||||
ULExport void ulViewSetFinishLoadingCallback(ULView view,
|
||||
ULFinishLoadingCallback callback,
|
||||
|
@ -460,7 +484,7 @@ typedef void
|
|||
(*ULUpdateHistoryCallback) (void* user_data, ULView caller);
|
||||
|
||||
///
|
||||
/// Set callback for when the history (back/forward state) is modified
|
||||
/// Set callback for when the history (back/forward state) is modified.
|
||||
///
|
||||
ULExport void ulViewSetUpdateHistoryCallback(ULView view,
|
||||
ULUpdateHistoryCallback callback,
|
||||
|
@ -491,22 +515,37 @@ ULExport void ulViewSetNeedsPaint(ULView view, bool needs_paint);
|
|||
///
|
||||
ULExport bool ulViewGetNeedsPaint(ULView view);
|
||||
|
||||
///
|
||||
/// Create an inspector for this View, this is useful for debugging and
|
||||
/// inspecting pages locally. This will only succeed if you have the
|
||||
/// inspector assets in your filesystem-- the inspector will look for
|
||||
/// file:///inspector/Main.html when it loads.
|
||||
///
|
||||
/// @note The initial dimensions of the returned View are 10x10, you should
|
||||
/// call ulViewResize on the returned View to resize it to your desired
|
||||
/// dimensions.
|
||||
///
|
||||
/// @note You will need to call ulDestroyView on the returned instance
|
||||
/// when you're done using it.
|
||||
///
|
||||
ULExport ULView ulViewCreateInspectorView(ULView view);
|
||||
|
||||
/******************************************************************************
|
||||
* String
|
||||
*****************************************************************************/
|
||||
|
||||
///
|
||||
/// Create string from null-terminated ASCII C-string
|
||||
/// Create string from null-terminated ASCII C-string.
|
||||
///
|
||||
ULExport ULString ulCreateString(const char* str);
|
||||
|
||||
///
|
||||
/// Create string from UTF-8 buffer
|
||||
/// Create string from UTF-8 buffer.
|
||||
///
|
||||
ULExport ULString ulCreateStringUTF8(const char* str, size_t len);
|
||||
|
||||
///
|
||||
/// Create string from UTF-16 buffer
|
||||
/// Create string from UTF-16 buffer.
|
||||
///
|
||||
ULExport ULString ulCreateStringUTF16(ULChar16* str, size_t len);
|
||||
|
||||
|
@ -521,7 +560,7 @@ ULExport void ulDestroyString(ULString str);
|
|||
ULExport ULChar16* ulStringGetData(ULString str);
|
||||
|
||||
///
|
||||
/// Get length in UTF-16 characters
|
||||
/// Get length in UTF-16 characters.
|
||||
///
|
||||
ULExport size_t ulStringGetLength(ULString str);
|
||||
|
||||
|
|
|
@ -19,64 +19,135 @@
|
|||
namespace ultralight {
|
||||
|
||||
///
|
||||
/// Affine Matrix helper
|
||||
/// 4x4 Matrix Helper
|
||||
///
|
||||
struct UExport Matrix {
|
||||
struct UExport Matrix4x4 {
|
||||
///
|
||||
/// Raw affine matrix as an array
|
||||
/// Raw 4x4 matrix as an array
|
||||
///
|
||||
float data[6];
|
||||
float data[16];
|
||||
|
||||
///
|
||||
/// Set to identity matrix
|
||||
/// Set to identity matrix.
|
||||
///
|
||||
void SetIdentity();
|
||||
};
|
||||
|
||||
///
|
||||
/// Transformation Matrix helper
|
||||
///
|
||||
struct UExport Matrix {
|
||||
#if defined(__x86_64__) || defined(_M_X64)
|
||||
#if defined(_MSC_VER)
|
||||
__declspec(align(16)) typedef double Aligned4x4[4][4];
|
||||
#else
|
||||
typedef double Aligned4x4[4][4] __attribute__((aligned(16)));
|
||||
#endif
|
||||
#else
|
||||
typedef double Aligned4x4[4][4];
|
||||
#endif
|
||||
|
||||
Aligned4x4 data;
|
||||
|
||||
///
|
||||
/// Set to identity matrix.
|
||||
///
|
||||
void SetIdentity();
|
||||
|
||||
///
|
||||
/// Set to another matrix
|
||||
/// Set to an orthographic projection matrix suitable for use with our
|
||||
/// vertex shaders. Optionally flip the y-coordinate space (eg, for OpenGL).
|
||||
///
|
||||
void Set(const Matrix& other);
|
||||
|
||||
///
|
||||
/// Set from raw affine members
|
||||
///
|
||||
void Set(float a, float b, float c, float d, float e, float f);
|
||||
void SetOrthographicProjection(double screen_width, double screen_height,
|
||||
bool flip_y);
|
||||
|
||||
///
|
||||
/// Whether or not this is an identity matrix
|
||||
/// Set to another matrix.
|
||||
///
|
||||
void Set(const Matrix& other);
|
||||
|
||||
///
|
||||
/// Set to another matrix.
|
||||
///
|
||||
void Set(const Matrix4x4& other);
|
||||
|
||||
///
|
||||
/// Set from raw affine members.
|
||||
///
|
||||
void Set(double a, double b, double c, double d, double e, double f);
|
||||
|
||||
///
|
||||
/// Set from raw 4x4 components.
|
||||
///
|
||||
void Set(double m11, double m12, double m13, double m14,
|
||||
double m21, double m22, double m23, double m24,
|
||||
double m31, double m32, double m33, double m34,
|
||||
double m41, double m42, double m43, double m44);
|
||||
|
||||
inline double m11() const { return data[0][0]; }
|
||||
inline double m12() const { return data[0][1]; }
|
||||
inline double m13() const { return data[0][2]; }
|
||||
inline double m14() const { return data[0][3]; }
|
||||
inline double m21() const { return data[1][0]; }
|
||||
inline double m22() const { return data[1][1]; }
|
||||
inline double m23() const { return data[1][2]; }
|
||||
inline double m24() const { return data[1][3]; }
|
||||
inline double m31() const { return data[2][0]; }
|
||||
inline double m32() const { return data[2][1]; }
|
||||
inline double m33() const { return data[2][2]; }
|
||||
inline double m34() const { return data[2][3]; }
|
||||
inline double m41() const { return data[3][0]; }
|
||||
inline double m42() const { return data[3][1]; }
|
||||
inline double m43() const { return data[3][2]; }
|
||||
inline double m44() const { return data[3][3]; }
|
||||
|
||||
inline double a() const { return data[0][0]; }
|
||||
inline double b() const { return data[0][1]; }
|
||||
inline double c() const { return data[1][0]; }
|
||||
inline double d() const { return data[1][1]; }
|
||||
inline double e() const { return data[3][0]; }
|
||||
inline double f() const { return data[3][1]; }
|
||||
|
||||
///
|
||||
/// Whether or not this is an identity matrix.
|
||||
///
|
||||
bool IsIdentity() const;
|
||||
|
||||
///
|
||||
/// Whether or not this is an identity matrix or translation
|
||||
/// Whether or not this is an identity matrix or translation.
|
||||
///
|
||||
bool IsIdentityOrTranslation() const;
|
||||
|
||||
///
|
||||
/// Whether or not this matrix uses only affine transformations.
|
||||
///
|
||||
bool IsAffine() const;
|
||||
|
||||
///
|
||||
/// Whether or not this is an identity, translation, or non-negative
|
||||
/// uniform scale
|
||||
/// uniform scale.
|
||||
///
|
||||
bool IsSimple() const;
|
||||
|
||||
///
|
||||
/// Translate by x and y
|
||||
/// Translate by x and y.
|
||||
///
|
||||
void Translate(float x, float y);
|
||||
void Translate(double x, double y);
|
||||
|
||||
///
|
||||
/// Scale by x and y
|
||||
/// Scale by x and y.
|
||||
///
|
||||
void Scale(float x, float y);
|
||||
void Scale(double x, double y);
|
||||
|
||||
///
|
||||
/// Rotate matrix by theta (in degrees)
|
||||
///
|
||||
void Rotate(float theta);
|
||||
void Rotate(double theta);
|
||||
|
||||
///
|
||||
/// Rotate matrix by x and y
|
||||
///
|
||||
void Rotate(float x, float y);
|
||||
void Rotate(double x, double y);
|
||||
|
||||
///
|
||||
/// Transform (multiply) by another Matrix
|
||||
|
@ -102,28 +173,14 @@ struct UExport Matrix {
|
|||
/// Get an integer hash of this matrix's members.
|
||||
///
|
||||
uint32_t Hash() const;
|
||||
|
||||
///
|
||||
/// Get this matrix as unaligned 4x4 float components (for use passing to
|
||||
/// GPU driver APIs).
|
||||
///
|
||||
Matrix4x4 GetMatrix4x4() const;
|
||||
};
|
||||
|
||||
///
|
||||
/// 4x4 Matrix Helper
|
||||
///
|
||||
struct UExport Matrix4x4 {
|
||||
///
|
||||
/// Raw 4x4 matrix as an array
|
||||
///
|
||||
float data[16];
|
||||
|
||||
///
|
||||
/// Set to identity matrix.
|
||||
///
|
||||
void SetIdentity();
|
||||
};
|
||||
|
||||
///
|
||||
/// Convert affine matrix to a 4x4 matrix.
|
||||
///
|
||||
Matrix4x4 UExport ConvertAffineTo4x4(const Matrix& mat);
|
||||
|
||||
bool UExport operator==(const Matrix& a, const Matrix& b);
|
||||
bool UExport operator!=(const Matrix& a, const Matrix& b);
|
||||
|
||||
|
|
|
@ -224,6 +224,17 @@ public:
|
|||
///
|
||||
virtual bool needs_paint() const = 0;
|
||||
|
||||
///
|
||||
/// Get the inspector for this View, this is useful for debugging and
|
||||
/// inspecting pages locally. This will only succeed if you have the
|
||||
/// inspector assets in your filesystem-- the inspector will look for
|
||||
/// file:///inspector/Main.html when it first loads.
|
||||
///
|
||||
/// @note The inspector View is owned by the View and lazily-created on
|
||||
/// first call. The initial dimensions are 10x10, you should call
|
||||
/// View::Resize() on the returned View to resize it to your desired
|
||||
/// dimensions.
|
||||
///
|
||||
virtual RefPtr<View> inspector() = 0;
|
||||
|
||||
protected:
|
||||
|
|
|
@ -57,7 +57,7 @@ struct UExport Config {
|
|||
bool enable_images = true;
|
||||
|
||||
///
|
||||
/// Whether or not JavaScript should be enabled
|
||||
/// Whether or not JavaScript should be enabled.
|
||||
///
|
||||
bool enable_javascript = true;
|
||||
|
||||
|
@ -107,6 +107,36 @@ struct UExport Config {
|
|||
/// and platform input widgets.
|
||||
///
|
||||
String16 user_stylesheet;
|
||||
|
||||
///
|
||||
/// Whether or not we should continuously repaint any Views or compositor
|
||||
/// layers, regardless if they are dirty or not. This is mainly used to
|
||||
/// diagnose painting/shader issues.
|
||||
///
|
||||
bool force_repaint = false;
|
||||
|
||||
///
|
||||
/// When a CSS animation is active, the amount of time to wait before
|
||||
/// triggering another repaint.
|
||||
///
|
||||
double animation_timer_delay = 1.0 / 60.0;
|
||||
|
||||
///
|
||||
/// Size of WebCore's memory cache in bytes.
|
||||
///
|
||||
/// @note You should increase this if you anticipate handling pages with
|
||||
/// large resources, Safari typically uses 128+ MiB for its cache.
|
||||
///
|
||||
uint32_t memory_cache_size = 64 * 1024 * 1024;
|
||||
|
||||
///
|
||||
/// Number of pages to keep in the cache. Defaults to 0 (none).
|
||||
///
|
||||
/// @note Safari typically caches about 5 pages and maintains an on-disk
|
||||
/// cache to support typical web-browsing activities. If you increase
|
||||
/// this, you should probably increase the memory cache size as well.
|
||||
///
|
||||
uint32_t page_cache_size = 0;
|
||||
};
|
||||
|
||||
} // namespace ultralight
|
||||
|
|
|
@ -121,6 +121,8 @@ struct UExport GPUState {
|
|||
vec4 uniform_vector[8];
|
||||
uint8_t clip_size;
|
||||
Matrix4x4 clip[8];
|
||||
bool enable_scissor;
|
||||
Rect scissor_rect;
|
||||
};
|
||||
|
||||
///
|
||||
|
@ -222,7 +224,7 @@ public:
|
|||
virtual void BindRenderBuffer(uint32_t render_buffer_id) = 0;
|
||||
|
||||
///
|
||||
/// Clear a render buffer (flush pixels)
|
||||
/// Clear a render buffer (flush pixels to 0).
|
||||
///
|
||||
virtual void ClearRenderBuffer(uint32_t render_buffer_id) = 0;
|
||||
|
||||
|
|
3
muon.go
3
muon.go
|
@ -44,7 +44,8 @@ func New(cfg *Config, handler http.Handler) *Window {
|
|||
}
|
||||
|
||||
ufg := UlCreateConfig()
|
||||
w.app = UlCreateApp(ufg)
|
||||
std := UlCreateSettings()
|
||||
w.app = UlCreateApp(std, ufg)
|
||||
mm := UlAppGetMainMonitor(w.app)
|
||||
w.wnd = UlCreateWindow(mm, w.cfg.Height, w.cfg.Width, false, w.cfg.Hint)
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ GENERATOR:
|
|||
PackageLicense: "THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS."
|
||||
FlagGroups:
|
||||
- {name: CFLAGS, flags: [-I../include]}
|
||||
- {name: LDFLAGS, flags: [-L -lUltralightCore -lWebCore -lUltralight -lAppCore]}
|
||||
- {name: LDFLAGS, flags: ["-L${SRCDIR}/libs -lUltralightCore -lWebCore -lUltralight -lAppCore"]}
|
||||
Includes: ["AppCore/CAPI.h"]
|
||||
Options:
|
||||
SafeStrings: true
|
||||
|
@ -37,18 +37,18 @@ TRANSLATOR:
|
|||
- {transform: export}
|
||||
function:
|
||||
- {action: ignore, from: __GO__}
|
||||
- {action: ignore, from: JSObjectGetArrayBufferByteLength}
|
||||
- {action: ignore, from: JSObjectGetArrayBufferBytesPtr}
|
||||
- {action: ignore, from: JSObjectGetTypedArrayBuffer}
|
||||
- {action: ignore, from: JSObjectGetTypedArrayByteLength}
|
||||
- {action: ignore, from: JSObjectGetTypedArrayByteOffset}
|
||||
- {action: ignore, from: JSObjectGetTypedArrayBytesPtr}
|
||||
- {action: ignore, from: JSObjectGetTypedArrayLength}
|
||||
- {action: ignore, from: JSObjectMakeArrayBufferWithBytesNoCopy}
|
||||
- {action: ignore, from: JSObjectMakeTypedArray}
|
||||
- {action: ignore, from: JSObjectMakeTypedArrayWithArrayBuffer}
|
||||
- {action: ignore, from: JSObjectMakeTypedArrayWithArrayBufferAndOffset}
|
||||
- {action: ignore, from: JSObjectMakeTypedArrayWithBytesNoCopy}
|
||||
- {action: ignore, from: JSValueGetTypedArrayType}
|
||||
# - {action: ignore, from: JSObjectGetArrayBufferByteLength}
|
||||
# - {action: ignore, from: JSObjectGetArrayBufferBytesPtr}
|
||||
# - {action: ignore, from: JSObjectGetTypedArrayBuffer}
|
||||
# - {action: ignore, from: JSObjectGetTypedArrayByteLength}
|
||||
# - {action: ignore, from: JSObjectGetTypedArrayByteOffset}
|
||||
# - {action: ignore, from: JSObjectGetTypedArrayBytesPtr}
|
||||
# - {action: ignore, from: JSObjectGetTypedArrayLength}
|
||||
# - {action: ignore, from: JSObjectMakeArrayBufferWithBytesNoCopy}
|
||||
# - {action: ignore, from: JSObjectMakeTypedArray}
|
||||
# - {action: ignore, from: JSObjectMakeTypedArrayWithArrayBuffer}
|
||||
# - {action: ignore, from: JSObjectMakeTypedArrayWithArrayBufferAndOffset}
|
||||
# - {action: ignore, from: JSObjectMakeTypedArrayWithBytesNoCopy}
|
||||
# - {action: ignore, from: JSValueGetTypedArrayType}
|
||||
private:
|
||||
- {transform: unexport}
|
|
@ -1,6 +1,6 @@
|
|||
// THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS.
|
||||
|
||||
// WARNING: This file has automatically been generated on Fri, 27 Sep 2019 21:28:43 CDT.
|
||||
// WARNING: This file has automatically been generated on Mon, 07 Oct 2019 13:59:36 CDT.
|
||||
// Code generated by https://git.io/c-for-go. DO NOT EDIT.
|
||||
|
||||
#include "_cgo_export.h"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS.
|
||||
|
||||
// WARNING: This file has automatically been generated on Fri, 27 Sep 2019 21:28:43 CDT.
|
||||
// WARNING: This file has automatically been generated on Mon, 07 Oct 2019 13:59:36 CDT.
|
||||
// Code generated by https://git.io/c-for-go. DO NOT EDIT.
|
||||
|
||||
package ultralight
|
||||
|
@ -886,7 +886,7 @@ func jSObjectCallAsFunctionCallback89F9469B(cctx C.JSContextRef, cfunction C.JSO
|
|||
hxff73280 := (*sliceHeader)(unsafe.Pointer(&arguments89f9469b))
|
||||
hxff73280.Data = unsafe.Pointer(carguments)
|
||||
hxff73280.Cap = 0x7fffffff
|
||||
hxff73280.Len = int(argumentCount89f9469b) // <-- Was commented out
|
||||
hxff73280.Len = int(argumentCount89f9469b)
|
||||
|
||||
var exception89f9469b []JSValueRef
|
||||
hxfa9955c := (*sliceHeader)(unsafe.Pointer(&exception89f9469b))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS.
|
||||
|
||||
// WARNING: This file has automatically been generated on Fri, 27 Sep 2019 21:28:43 CDT.
|
||||
// WARNING: This file has automatically been generated on Mon, 07 Oct 2019 13:59:36 CDT.
|
||||
// Code generated by https://git.io/c-for-go. DO NOT EDIT.
|
||||
|
||||
#include "AppCore/CAPI.h"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS.
|
||||
|
||||
// WARNING: This file has automatically been generated on Fri, 27 Sep 2019 21:28:43 CDT.
|
||||
// WARNING: This file has automatically been generated on Mon, 07 Oct 2019 13:59:36 CDT.
|
||||
// Code generated by https://git.io/c-for-go. DO NOT EDIT.
|
||||
|
||||
package ultralight
|
||||
|
@ -19,10 +19,10 @@ const (
|
|||
JSC_OBJC_API_ENABLED = 0
|
||||
)
|
||||
|
||||
// ULWindowFlags as declared in AppCore/CAPI.h:46
|
||||
// ULWindowFlags as declared in AppCore/CAPI.h:47
|
||||
type ULWindowFlags int32
|
||||
|
||||
// ULWindowFlags enumeration from AppCore/CAPI.h:46
|
||||
// ULWindowFlags enumeration from AppCore/CAPI.h:47
|
||||
const (
|
||||
KWindowFlags_Borderless ULWindowFlags = 1
|
||||
KWindowFlags_Titled ULWindowFlags = 2
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
// THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS.
|
||||
|
||||
// WARNING: This file has automatically been generated on Mon, 07 Oct 2019 13:59:36 CDT.
|
||||
// Code generated by https://git.io/c-for-go. DO NOT EDIT.
|
||||
|
||||
/*
|
||||
Ultralight bindings for golang
|
||||
*/
|
||||
package ultralight
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,6 +1,6 @@
|
|||
// THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS.
|
||||
|
||||
// WARNING: This file has automatically been generated on Fri, 27 Sep 2019 21:28:43 CDT.
|
||||
// WARNING: This file has automatically been generated on Mon, 07 Oct 2019 13:59:36 CDT.
|
||||
// Code generated by https://git.io/c-for-go. DO NOT EDIT.
|
||||
|
||||
package ultralight
|
||||
|
@ -15,25 +15,28 @@ package ultralight
|
|||
import "C"
|
||||
import "unsafe"
|
||||
|
||||
// ULApp as declared in AppCore/CAPI.h:33
|
||||
// ULSettings as declared in AppCore/CAPI.h:33
|
||||
type ULSettings C.ULSettings
|
||||
|
||||
// ULApp as declared in AppCore/CAPI.h:34
|
||||
type ULApp C.ULApp
|
||||
|
||||
// ULWindow as declared in AppCore/CAPI.h:34
|
||||
// ULWindow as declared in AppCore/CAPI.h:35
|
||||
type ULWindow C.ULWindow
|
||||
|
||||
// ULMonitor as declared in AppCore/CAPI.h:35
|
||||
// ULMonitor as declared in AppCore/CAPI.h:36
|
||||
type ULMonitor C.ULMonitor
|
||||
|
||||
// ULOverlay as declared in AppCore/CAPI.h:36
|
||||
// ULOverlay as declared in AppCore/CAPI.h:37
|
||||
type ULOverlay C.ULOverlay
|
||||
|
||||
// ULUpdateCallback type as declared in AppCore/CAPI.h:81
|
||||
// ULUpdateCallback type as declared in AppCore/CAPI.h:118
|
||||
type ULUpdateCallback func(user_data unsafe.Pointer)
|
||||
|
||||
// ULCloseCallback type as declared in AppCore/CAPI.h:160
|
||||
// ULCloseCallback type as declared in AppCore/CAPI.h:195
|
||||
type ULCloseCallback func(user_data unsafe.Pointer)
|
||||
|
||||
// ULResizeCallback type as declared in AppCore/CAPI.h:170
|
||||
// ULResizeCallback type as declared in AppCore/CAPI.h:205
|
||||
type ULResizeCallback func(user_data unsafe.Pointer, width uint32, height uint32)
|
||||
|
||||
// ULChar16 type as declared in Ultralight/CAPI.h:43
|
||||
|
@ -69,31 +72,31 @@ type ULMouseEvent C.ULMouseEvent
|
|||
// ULScrollEvent as declared in Ultralight/CAPI.h:59
|
||||
type ULScrollEvent C.ULScrollEvent
|
||||
|
||||
// ULChangeTitleCallback type as declared in Ultralight/CAPI.h:385
|
||||
// ULChangeTitleCallback type as declared in Ultralight/CAPI.h:409
|
||||
type ULChangeTitleCallback func(user_data unsafe.Pointer, caller ULView, title ULString)
|
||||
|
||||
// ULChangeURLCallback type as declared in Ultralight/CAPI.h:395
|
||||
// ULChangeURLCallback type as declared in Ultralight/CAPI.h:419
|
||||
type ULChangeURLCallback func(user_data unsafe.Pointer, caller ULView, url ULString)
|
||||
|
||||
// ULChangeTooltipCallback type as declared in Ultralight/CAPI.h:405
|
||||
// ULChangeTooltipCallback type as declared in Ultralight/CAPI.h:429
|
||||
type ULChangeTooltipCallback func(user_data unsafe.Pointer, caller ULView, tooltip ULString)
|
||||
|
||||
// ULChangeCursorCallback type as declared in Ultralight/CAPI.h:415
|
||||
// ULChangeCursorCallback type as declared in Ultralight/CAPI.h:439
|
||||
type ULChangeCursorCallback func(user_data unsafe.Pointer, caller ULView, cursor ULCursor)
|
||||
|
||||
// ULAddConsoleMessageCallback type as declared in Ultralight/CAPI.h:425
|
||||
// ULAddConsoleMessageCallback type as declared in Ultralight/CAPI.h:449
|
||||
type ULAddConsoleMessageCallback func(user_data unsafe.Pointer, caller ULView, source ULMessageSource, level ULMessageLevel, message ULString, line_number uint32, column_number uint32, source_id ULString)
|
||||
|
||||
// ULBeginLoadingCallback type as declared in Ultralight/CAPI.h:440
|
||||
// ULBeginLoadingCallback type as declared in Ultralight/CAPI.h:464
|
||||
type ULBeginLoadingCallback func(user_data unsafe.Pointer, caller ULView)
|
||||
|
||||
// ULFinishLoadingCallback type as declared in Ultralight/CAPI.h:450
|
||||
// ULFinishLoadingCallback type as declared in Ultralight/CAPI.h:474
|
||||
type ULFinishLoadingCallback func(user_data unsafe.Pointer, caller ULView)
|
||||
|
||||
// ULUpdateHistoryCallback type as declared in Ultralight/CAPI.h:460
|
||||
// ULUpdateHistoryCallback type as declared in Ultralight/CAPI.h:484
|
||||
type ULUpdateHistoryCallback func(user_data unsafe.Pointer, caller ULView)
|
||||
|
||||
// ULDOMReadyCallback type as declared in Ultralight/CAPI.h:470
|
||||
// ULDOMReadyCallback type as declared in Ultralight/CAPI.h:494
|
||||
type ULDOMReadyCallback func(user_data unsafe.Pointer, caller ULView)
|
||||
|
||||
// JSContextGroupRef as declared in JavaScriptCore/JSBase.h:40
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue