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 1 commit
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 @@ -496,8 +496,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 @@ -507,6 +507,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