Skip to content

Commit

Permalink
Added ability to set flipY, premultiplyAlpha and colorSpaceConversion…
Browse files Browse the repository at this point in the history
… on texture initialization
  • Loading branch information
fedegratti committed Sep 12, 2023
1 parent a388755 commit 6161cde
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 14 deletions.
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v10.6.2
v10.6.3
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ohzi-core",
"version": "10.6.2",
"version": "10.6.3",
"description": "OHZI Core Library",
"source": "src/index.js",
"module": "build/index.module.js",
Expand Down
21 changes: 16 additions & 5 deletions src/resource_loader/AsyncTextureLoader.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
import { Browser } from '../Browser';
import { AbstractLoader } from './AbstractLoader';

import { Texture } from 'three';
import { Browser } from '../Browser';
import { NoColorSpace, SRGBColorSpace, Texture } from 'three';

class AsyncTextureLoader extends AbstractLoader
{
constructor(resource_id, url, size)
constructor(resource_id, url, size, flipY = true, premultiplyAlpha = false, colorSpaceConversion = true)
{
super(resource_id, url, size);

this.colorSpaceConversion = colorSpaceConversion;
this.premultiplyAlpha = premultiplyAlpha;
this.flipY = flipY;
}

on_preloaded_finished(resource_container)
{
if (Browser.is_safari && Browser.version < 15)
if (Browser.is_safari) // && Browser.version < 15
{
this.load_with_old_method(resource_container);
}
Expand All @@ -34,6 +38,9 @@ class AsyncTextureLoader extends AbstractLoader
image.onload = () =>
{
texture.image = image;
texture.flipY = this.flipY;
texture.premultiplyAlpha = this.premultiplyAlpha;
texture.colorSpace = this.colorSpaceConversion ? SRGBColorSpace : NoColorSpace;
texture.needsUpdate = true;

resource_container.set_resource(this.resource_id, this.url, texture);
Expand Down Expand Up @@ -69,7 +76,11 @@ class AsyncTextureLoader extends AbstractLoader
return res.blob();
}).then((blob) =>
{
return createImageBitmap(blob, { colorSpaceConversion: 'none' });
return createImageBitmap(blob, {
colorSpaceConversion: this.colorSpaceConversion ? 'default' : 'none',
imageOrientation: this.flipY ? 'flipY' : 'none',
premultiplyAlpha: this.premultiplyAlpha ? 'premultiply' : 'none'
});
}).then((imageBitmap) =>
{
const texture = new Texture(imageBitmap);
Expand Down
5 changes: 4 additions & 1 deletion types/resource_loader/AsyncTextureLoader.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
export class AsyncTextureLoader extends AbstractLoader {
constructor(resource_id: any, url: any, size: any);
constructor(resource_id: any, url: any, size: any, flipY?: boolean, premultiplyAlpha?: boolean, colorSpaceConversion?: boolean);
colorSpaceConversion: boolean;
premultiplyAlpha: boolean;
flipY: boolean;
on_preloaded_finished(resource_container: any): void;
load_with_old_method(resource_container: any): void;
load_with_new_method(resource_container: any): void;
Expand Down
6 changes: 0 additions & 6 deletions types/resource_loader/AsyncTextureLoader.ts

This file was deleted.

0 comments on commit 6161cde

Please sign in to comment.