クイックルック プラグインで WebGL を使用することは可能ですか?
関連するコードを次のように置き換えて、このチュートリアルに従いましGeneratePreviewForURL.m
た
OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options) {
NSString *_content = [NSString stringWithContentsOfURL:(__bridge NSURL *)url encoding:NSUTF8StringEncoding error:nil];
NSString* path = @"/Users/myusername/Downloads/TodoQL/demo.html";
NSError *error = nil;
NSString* _html = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:&error];
if(error) { // If error object was instantiated, handle it.
NSLog(@"ERROR while loading from file: %@", error);
}
NSLog(@"\n%@\n",_html);
QLPreviewRequestSetDataRepresentation(preview,(__bridge CFDataRef)[_html dataUsingEncoding:NSUTF8StringEncoding],kUTTypeHTML,NULL);
return noErr;
}
void CancelPreviewGeneration(void *thisInterface, QLPreviewRequestRef preview) {
// Implement only if supported
}
デバッグ用に、quicklook が指定されたファイルの内容を破棄するように設定されており、/Users/myusername/Downloads/TodoQL/demo.html
.
このベアボーン WebGL の例を使用し、gl コンテキストが読み込まれていないことを示すためにわずかに変更します。
gl = canvas.getContext("experimental-webgl");
if(!gl)
{
document.body.innerHTML = ":-(";
return;
}
実際、実行/usr/bin/qlmanage -p example.example
すると webgl デモよりも失望した顔を見せます。
Safari では、このデモは「WebGL を有効にする」限り動作します。クイックルック プラグイン用に何らかの方法で WebGL を有効にする必要がありますか? どのように?