Skip to content
This repository was archived by the owner on Aug 15, 2019. It is now read-only.

Add a setter for MAX_TEXTURE_SIZE so the property can be modified when closure seals the file module. #1868

Merged
merged 2 commits into from
Aug 5, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/backends/webgl/flags_webgl_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ describe('WEBGL_CONV_IM2COL', () => {
describe('WEBGL_MAX_TEXTURE_SIZE', () => {
beforeEach(() => {
ENV.reset();
webgl_util.MAX_TEXTURE_SIZE = null;
webgl_util.resetMaxTextureSize();

spyOn(canvas_util, 'getWebGLContext').and.returnValue({
MAX_TEXTURE_SIZE: 101,
Expand All @@ -209,7 +209,7 @@ describe('WEBGL_MAX_TEXTURE_SIZE', () => {
});
afterAll(() => {
ENV.reset();
webgl_util.MAX_TEXTURE_SIZE = null;
webgl_util.resetMaxTextureSize();
});

it('is a function of gl.getParameter(MAX_TEXTURE_SIZE)', () => {
Expand All @@ -221,7 +221,7 @@ describe('WEBGL_MAX_TEXTURES_IN_SHADER', () => {
let maxTextures: number;
beforeEach(() => {
ENV.reset();
webgl_util.MAX_TEXTURES_IN_SHADER = null;
webgl_util.resetMaxTexturesInShader();

spyOn(canvas_util, 'getWebGLContext').and.callFake(() => {
return {
Expand All @@ -237,7 +237,7 @@ describe('WEBGL_MAX_TEXTURES_IN_SHADER', () => {
});
afterAll(() => {
ENV.reset();
webgl_util.MAX_TEXTURES_IN_SHADER = null;
webgl_util.resetMaxTexturesInShader();
});

it('is a function of gl.getParameter(MAX_TEXTURE_IMAGE_UNITS)', () => {
Expand Down
11 changes: 9 additions & 2 deletions src/backends/webgl/webgl_util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -498,8 +498,8 @@ export function isReshapeFree(shape1: number[], shape2: number[]): boolean {
// We cache webgl params because the environment gets reset between
// unit tests and we don't want to constantly query the WebGLContext for
// MAX_TEXTURE_SIZE.
export let MAX_TEXTURE_SIZE: number;
export let MAX_TEXTURES_IN_SHADER: number;
let MAX_TEXTURE_SIZE: number;
let MAX_TEXTURES_IN_SHADER: number;

export function getWebGLMaxTextureSize(webGLVersion: number): number {
if (MAX_TEXTURE_SIZE == null) {
Expand All @@ -509,6 +509,13 @@ export function getWebGLMaxTextureSize(webGLVersion: number): number {
return MAX_TEXTURE_SIZE;
}

export function resetMaxTextureSize() {
MAX_TEXTURE_SIZE = null;
}
export function resetMaxTexturesInShader() {
MAX_TEXTURES_IN_SHADER = null;
}

export function getMaxTexturesInShader(webGLVersion: number): number {
if (MAX_TEXTURES_IN_SHADER == null) {
const gl = getWebGLContext(webGLVersion);
Expand Down