|
@@ -19,6 +19,11 @@ interface ITexturePropertyTabComponentProps {
|
|
|
|
|
|
export class TexturePropertyTabComponent extends React.Component<ITexturePropertyTabComponentProps> {
|
|
|
|
|
|
+ updateAftertextureLoad() {
|
|
|
+ this.props.globalState.onUpdateRequiredObservable.notifyObservers();
|
|
|
+ this.props.globalState.onRebuildRequiredObservable.notifyObservers();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Replaces the texture of the node
|
|
|
* @param file the file of the texture to use
|
|
@@ -36,23 +41,25 @@ export class TexturePropertyTabComponent extends React.Component<ITexturePropert
|
|
|
|
|
|
Tools.ReadFile(file, (data) => {
|
|
|
var blob = new Blob([data], { type: "octet/stream" });
|
|
|
- var url = URL.createObjectURL(blob);
|
|
|
|
|
|
- if (texture.isCube) {
|
|
|
- let extension: string | undefined = undefined;
|
|
|
- if (file.name.toLowerCase().indexOf(".dds") > 0) {
|
|
|
- extension = ".dds";
|
|
|
- } else if (file.name.toLowerCase().indexOf(".env") > 0) {
|
|
|
- extension = ".env";
|
|
|
- }
|
|
|
+ var reader = new FileReader();
|
|
|
+ reader.readAsDataURL(blob);
|
|
|
+ reader.onloadend = () => {
|
|
|
+ let base64data = reader.result as string;
|
|
|
|
|
|
- (texture as Texture).updateURL(url, extension, () => this.props.globalState.onUpdateRequiredObservable.notifyObservers());
|
|
|
- } else {
|
|
|
- (texture as Texture).updateURL(url, null, () => this.props.globalState.onUpdateRequiredObservable.notifyObservers());
|
|
|
- }
|
|
|
+ if (texture.isCube) {
|
|
|
+ let extension: string | undefined = undefined;
|
|
|
+ if (file.name.toLowerCase().indexOf(".dds") > 0) {
|
|
|
+ extension = ".dds";
|
|
|
+ } else if (file.name.toLowerCase().indexOf(".env") > 0) {
|
|
|
+ extension = ".env";
|
|
|
+ }
|
|
|
|
|
|
- this.props.globalState.onUpdateRequiredObservable.notifyObservers();
|
|
|
- this.props.globalState.onRebuildRequiredObservable.notifyObservers();
|
|
|
+ (texture as Texture).updateURL(base64data, extension, () => this.updateAftertextureLoad());
|
|
|
+ } else {
|
|
|
+ (texture as Texture).updateURL(base64data, null, () => this.updateAftertextureLoad());
|
|
|
+ }
|
|
|
+ }
|
|
|
}, undefined, true);
|
|
|
}
|
|
|
|