Skip to content

Commit

Permalink
chore: updates
Browse files Browse the repository at this point in the history
  • Loading branch information
triniwiz committed Oct 15, 2023
1 parent 8af6ce4 commit 11fb296
Show file tree
Hide file tree
Showing 58 changed files with 4,986 additions and 4,281 deletions.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
//
// Created by Osei Fortune on 30/09/2020.
//

#import <Foundation/Foundation.h>
#import "canvas_native.h"
#import "canvas_ios.h"

#ifdef __OBJC__
#import <Foundation/Foundation.h>

//! Project version number for CanvasNative.
FOUNDATION_EXPORT double CanvasNativeVersionNumber;

Expand All @@ -17,4 +18,4 @@ FOUNDATION_EXPORT const unsigned char CanvasNativeVersionString[];

// In this header, you should import all the public headers of your framework using statements like #import <CanvasNative/PublicHeader.h>


#endif

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
//
// Created by Osei Fortune on 30/09/2020.
//

#import <Foundation/Foundation.h>
#import "canvas_native.h"
#import "canvas_ios.h"

#ifdef __OBJC__
#import <Foundation/Foundation.h>

//! Project version number for CanvasNative.
FOUNDATION_EXPORT double CanvasNativeVersionNumber;

Expand All @@ -17,4 +18,4 @@ FOUNDATION_EXPORT const unsigned char CanvasNativeVersionString[];

// In this header, you should import all the public headers of your framework using statements like #import <CanvasNative/PublicHeader.h>


#endif

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
</data>
<key>Headers/CanvasNative.h</key>
<data>
+QoTcsiyRLselY1cxOt2V5zx0eg=
Fpy7Hlc8UqNId8jgtgKz5mOFBCU=
</data>
<key>Headers/canvas_ios.h</key>
<data>
KTxEWGEXbMkpqkl1jFw9IrlUXNk=
</data>
<key>Headers/canvas_native.h</key>
<data>
O+omEt3fxlDwlx/tztK3TnD+1to=
KjmIpBZrkmZPbZiPxYeDVFudctM=
</data>
<key>Info.plist</key>
<data>
Expand Down Expand Up @@ -94,7 +94,7 @@
<dict>
<key>hash2</key>
<data>
+okZJbJMCnWx5+POPGyO1xTQM8uj5a1RrzTTGZ8eU+g=
U94BOYW6ZUckumKy0f6esxE3QgCyRx/QAGTXLd+jBpU=
</data>
</dict>
<key>Headers/canvas_ios.h</key>
Expand All @@ -108,7 +108,7 @@
<dict>
<key>hash2</key>
<data>
vRaqALmrWIwqjqdWBVtu5+sUNS8HW8ZZFFucO87G+MU=
W14HFr1pFaToaWIQbCgrX4F1bw4RkCQFUOi0DiyMlww=
</data>
</dict>
<key>Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo</key>
Expand Down
Binary file not shown.
41 changes: 21 additions & 20 deletions packages/canvas/platforms/ios/src/cpp/Helpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -214,26 +214,27 @@ inline static NativeType GetNativeType(v8::Isolate *isolate, const v8::Local<v8:
}


template<typename T>
inline static rust::Slice<T>
GetArrayBufferData(v8::Local<v8::ArrayBuffer> &array) {
auto buf = array->GetBackingStore()->Data();
auto size = array->ByteLength();

rust::Slice<T> slice(reinterpret_cast<T *>(buf), size);
return std::move(slice);
}

template<typename T>
inline static rust::Slice<T>
GetTypedArrayData(v8::Local<v8::TypedArray> &array) {
auto buf = array->Buffer();
auto offset = array->ByteOffset();
auto size = buf->ByteLength();
rust::Slice<T> slice(reinterpret_cast<T *>(buf->GetBackingStore()->Data()) + offset,
(size / sizeof(T)));
return std::move(slice);
}
//template<typename T>
//inline static rust::Slice<T>
//GetArrayBufferData(v8::Local<v8::ArrayBuffer> &array) {
// auto buf = array->GetBackingStore()->Data();
// auto size = array->ByteLength();
//
// rust::Slice<T> slice(reinterpret_cast<T *>(buf), size);
// return std::move(slice);
//}


//template<typename T>
//inline static rust::Slice<T>
//GetTypedArrayData(v8::Local<v8::TypedArray> &array) {
// auto buf = array->Buffer();
// auto offset = array->ByteOffset();
// auto size = buf->ByteLength();
// rust::Slice<T> slice(reinterpret_cast<T *>(buf->GetBackingStore()->Data()) + offset,
// (size / sizeof(T)));
// return std::move(slice);
//}



Expand Down
99 changes: 36 additions & 63 deletions packages/canvas/platforms/ios/src/cpp/ImageAssetImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,8 @@ ImageAssetImpl::GetError(v8::Local<v8::String> name,
if (ptr != nullptr) {
auto ret = canvas_native_image_asset_get_error(ptr->GetImageAsset());
auto isolate = info.GetIsolate();
info.GetReturnValue().Set(ConvertToV8String(isolate, ret.c_str()));
info.GetReturnValue().Set(ConvertToV8String(isolate, ret));
canvas_native_string_destroy((char*)ret);
return;
}
info.GetReturnValue().SetEmptyString();
Expand Down Expand Up @@ -253,18 +254,15 @@ void ImageAssetImpl::FromUrlCb(const v8::FunctionCallbackInfo<v8::Value> &args)


std::thread thread(
[jsi_callback](
const std::string &url,
ImageAsset * asset) {

[jsi_callback, asset](
const std::string &url) {
auto done = canvas_native_image_asset_load_from_url(asset, url.c_str());

write(jsi_callback->fd_[1],
&done,
sizeof(bool));

}, std::move(url),
std::move(asset));
}, std::move(url));

thread.detach();

Expand All @@ -281,9 +279,7 @@ void ImageAssetImpl::FromUrlCb(const v8::FunctionCallbackInfo<v8::Value> &args)
auto task = [&jsi_callback, &current_queue, &queue, &asset, &url]() {

auto done = canvas_native_image_asset_load_from_url(asset, url.c_str());

delete asset;

canvas_native_image_asset_destroy(asset);
auto main_task = [&jsi_callback, &current_queue, &queue, &url, &done]() {


Expand Down Expand Up @@ -393,18 +389,16 @@ void ImageAssetImpl::FromFileCb(const v8::FunctionCallbackInfo<v8::Value> &args)


std::thread thread(
[jsi_callback](
const std::string &path,
ImageAsset * asset) {
[jsi_callback, asset](
const std::string &path) {

auto done = canvas_native_image_asset_load_from_path(asset, path.c_str());

write(jsi_callback->fd_[1],
&done,
sizeof(bool));

}, std::move(path),
std::move(asset));
}, std::move(path));

thread.detach();

Expand All @@ -421,12 +415,11 @@ void ImageAssetImpl::FromFileCb(const v8::FunctionCallbackInfo<v8::Value> &args)
auto task = [&jsi_callback, &current_queue, &queue, &asset, &path]() {

auto done = canvas_native_image_asset_load_from_path(asset, path.c_str());

canvas_native_image_asset_destroy(asset);

delete asset;
auto main_task = [&jsi_callback, &current_queue, &queue, &done]() {

auto main_task = [&jsi_callback, &current_queue, &queue, &url, &done]() {


v8::Isolate *isolate = jsi_callback->isolate_;
v8::Locker locker(isolate);
v8::Isolate::Scope isolate_scope(isolate);
Expand Down Expand Up @@ -472,9 +465,8 @@ void ImageAssetImpl::FromBytesSync(const v8::FunctionCallbackInfo<v8::Value> &ar

uintptr_t size = (uintptr_t)buf->ByteLength();
auto data = (uint8_t *) buf->GetBackingStore()->Data();
auto buf = canvas_native_u8_buffer_create_with_reference(data, size);

auto done = canvas_native_image_asset_load_from_raw(ptr->GetImageAsset(), buf);
auto done = canvas_native_image_asset_load_from_raw(ptr->GetImageAsset(), data, size);

args.GetReturnValue().Set(done);
}
Expand All @@ -497,12 +489,11 @@ void ImageAssetImpl::FromBytesCb(const v8::FunctionCallbackInfo<v8::Value> &args
auto bytes = args[0].As<v8::ArrayBuffer>();

auto size = bytes->ByteLength();
auto data = (uint8_t *) bytes->GetBackingStore()->Data();
auto buf = canvas_native_u8_buffer_create_with_reference(data, size);

auto asset = canvas_native_image_asset_shared_clone(
ptr->GetImageAsset());
auto data = (uint8_t *) bytes->GetBackingStore()->Data();

auto asset = canvas_native_image_asset_shared_clone(ptr->GetImageAsset());

auto callback = args[1].As<v8::Function>();

auto jsi_callback = new JSICallback(isolate, callback);
Expand Down Expand Up @@ -543,18 +534,15 @@ void ImageAssetImpl::FromBytesCb(const v8::FunctionCallbackInfo<v8::Value> &args


std::thread thread(
[jsi_callback, &buf](ImageAsset * asset) {


auto done = canvas_native_image_asset_load_from_raw(asset, buf);

canvas_native_u8_buffer_destroy(buf);

[jsi_callback, asset, data, size]() {

auto done = canvas_native_image_asset_load_from_raw(asset, data, size);

write(jsi_callback->fd_[1],
&done,
sizeof(bool));

}, std::move(asset));
});

thread.detach();

Expand All @@ -570,15 +558,13 @@ void ImageAssetImpl::FromBytesCb(const v8::FunctionCallbackInfo<v8::Value> &args

auto queue = new NSOperationQueueWrapper(false);

auto task = [&jsi_callback, &current_queue, &queue, &asset, &path, &buf]() {

auto done = canvas_native_image_asset_load_from_raw(asset, buf);
auto task = [jsi_callback, current_queue, queue, asset, data, size]() {

canvas_native_u8_buffer_destroy(buf);
delete asset;
auto done = canvas_native_image_asset_load_from_raw(asset, data, size);

canvas_native_image_asset_destroy(asset);

auto main_task = [&jsi_callback, &current_queue, &queue, &url, &done]() {
auto main_task = [&jsi_callback, &current_queue, &queue, &done]() {


v8::Isolate *isolate = jsi_callback->isolate_;
Expand Down Expand Up @@ -620,9 +606,7 @@ void ImageAssetImpl::SaveSync(const v8::FunctionCallbackInfo<v8::Value> &args) {
auto context = isolate->GetCurrentContext();
auto path = ConvertFromV8String(isolate, args[0]);
auto format = (uint32_t) args[1]->NumberValue(context).ToChecked();
auto done = canvas_native_image_asset_save_path(
ptr->GetImageAsset(),
rust::Str(path.c_str()), format);
auto done = canvas_native_image_asset_save_path(ptr->GetImageAsset(), path.c_str(), format);

args.GetReturnValue().Set(done);
}
Expand Down Expand Up @@ -687,13 +671,10 @@ void ImageAssetImpl::SaveCb(const v8::FunctionCallbackInfo<v8::Value> &args) {


std::thread thread(
[jsi_callback](
const std::string &path,
std::uint32_t format,
ImageAsset * asset) {
[jsi_callback, asset, format](
const std::string &path) {

auto done = canvas_native_image_asset_save_path(
*asset,
auto done = canvas_native_image_asset_save_path(asset,
path.c_str(),
format);

Expand All @@ -702,8 +683,7 @@ void ImageAssetImpl::SaveCb(const v8::FunctionCallbackInfo<v8::Value> &args) {
&done,
sizeof(bool));

}, std::move(path), format,
std::move(asset));
}, std::move(path), format);


thread.detach();
Expand All @@ -719,14 +699,11 @@ void ImageAssetImpl::SaveCb(const v8::FunctionCallbackInfo<v8::Value> &args) {

auto task = [&jsi_callback, &current_queue, &queue, &asset, &path, &format]() {

auto done = canvas_native_image_asset_save_path(
asset,
path.c_str()
format);
auto done = canvas_native_image_asset_save_path(asset, path.c_str(), format);

delete asset;
canvas_native_image_asset_destroy(asset);

auto main_task = [&jsi_callback, &current_queue, &queue, &url, &done]() {
auto main_task = [&jsi_callback, &current_queue, &queue, &done]() {


v8::Isolate *isolate = jsi_callback->isolate_;
Expand Down Expand Up @@ -758,11 +735,7 @@ void ImageAssetImpl::SaveCb(const v8::FunctionCallbackInfo<v8::Value> &args) {

}

ImageAsset &ImageAssetImpl::GetImageAsset() {
return *this->asset_;
}

ImageAsset &ImageAssetImpl::GetImageAsset(): const {
return *this->asset_;
ImageAsset *ImageAssetImpl::GetImageAsset() {
return this->asset_;
}

6 changes: 3 additions & 3 deletions packages/canvas/platforms/ios/src/cpp/ImageBitmapImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@

struct Options {
bool flipY = false;
ImageBitmapPremultiplyAlpha premultiplyAlpha = ImageBitmapPremultiplyAlpha::Default;
ImageBitmapColorSpaceConversion colorSpaceConversion = ImageBitmapColorSpaceConversion::Default;
ImageBitmapResizeQuality resizeQuality = ImageBitmapResizeQuality::Low;
ImageBitmapPremultiplyAlpha premultiplyAlpha = ImageBitmapPremultiplyAlpha::ImageBitmapPremultiplyAlphaDefault;
ImageBitmapColorSpaceConversion colorSpaceConversion = ImageBitmapColorSpaceConversion::ImageBitmapColorSpaceConversionDefault;
ImageBitmapResizeQuality resizeQuality = ImageBitmapResizeQuality::ImageBitmapResizeQualityLow;
float resizeWidth = 0;
float resizeHeight = 0;
};
Expand Down
Loading

0 comments on commit 11fb296

Please sign in to comment.