Merge pull request #4836 from atom/get-native-handle-osx

Make it clear that image.getNativeHandle is OS X only
This commit is contained in:
Cheng Zhao 2016-03-17 22:21:21 +09:00
commit 48f1eb4584
2 changed files with 15 additions and 16 deletions

View file

@ -184,8 +184,7 @@ mate::ObjectTemplateBuilder NativeImage::GetObjectTemplateBuilder(
template_.Reset(isolate, mate::ObjectTemplateBuilder(isolate) template_.Reset(isolate, mate::ObjectTemplateBuilder(isolate)
.SetMethod("toPng", &NativeImage::ToPNG) .SetMethod("toPng", &NativeImage::ToPNG)
.SetMethod("toJpeg", &NativeImage::ToJPEG) .SetMethod("toJpeg", &NativeImage::ToJPEG)
.SetMethod("getNativeHandle", .SetMethod("getNativeHandle", &NativeImage::GetNativeHandle)
&NativeImage::GetNativeHandle)
.SetMethod("toDataURL", &NativeImage::ToDataURL) .SetMethod("toDataURL", &NativeImage::ToDataURL)
.SetMethod("toDataUrl", &NativeImage::ToDataURL) // deprecated. .SetMethod("toDataUrl", &NativeImage::ToDataURL) // deprecated.
.SetMethod("isEmpty", &NativeImage::IsEmpty) .SetMethod("isEmpty", &NativeImage::IsEmpty)
@ -223,21 +222,18 @@ std::string NativeImage::ToDataURL() {
return data_url; return data_url;
} }
v8::Local<v8::Value> NativeImage::GetNativeHandle( v8::Local<v8::Value> NativeImage::GetNativeHandle(v8::Isolate* isolate,
v8::Isolate* isolate,
mate::Arguments* args) { mate::Arguments* args) {
void* ptr = NULL;
#if defined(OS_MACOSX) #if defined(OS_MACOSX)
ptr = reinterpret_cast<void*>(image_.AsNSImage()); NSImage* ptr = image_.AsNSImage();
#else
args->ThrowError();
return v8::Undefined(isolate);
#endif
return node::Buffer::Copy( return node::Buffer::Copy(
isolate, isolate,
reinterpret_cast<char*>(ptr), reinterpret_cast<char*>(ptr),
sizeof(void*)).ToLocalChecked(); sizeof(void*)).ToLocalChecked();
#else
args->ThrowError("Not implemented");
return v8::Undefined(isolate);
#endif
} }
bool NativeImage::IsEmpty() { bool NativeImage::IsEmpty() {

View file

@ -133,11 +133,14 @@ Returns a [Buffer][buffer] that contains the image's `JPEG` encoded data.
Returns the data URL of the image. Returns the data URL of the image.
### `image.getNativeHandle()` ### `image.getNativeHandle()` _OS X_
Returns a pointer to an underlying native type (encoded as a [Buffer][buffer]) which can be used with native APIs. Note that in many cases, this pointer is a weak pointer to the underlying native image not a copy, so you _must_ ensure that the associated `nativeImage` instance is kept around. Returns a [Buffer][buffer] that stores C pointer to underlying native handle of
the image. On OS X, a pointer to `NSImage` instance would be returned.
Returns a [Buffer][buffer] that represents a pointer to a native type - on OS X, this type is an NSImage object. Notice that the returned pointer is a weak pointer to the underlying native
image instead of a copy, so you _must_ ensure that the associated
`nativeImage` instance is kept around.
### `image.isEmpty()` ### `image.isEmpty()`