{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/comments/232834815","pull_request_review_id":174117511,"id":232834815,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMjgzNDgxNQ==","diff_hunk":"@@ -58,6 +59,7 @@ export default class Renderer extends EventDispatcher {\n     this.renderer.gammaFactor = GAMMA_FACTOR;\n \n     this[$arRenderer] = ARRenderer.fromInlineRenderer(this);\n+    this.textureManager = new TextureManager(this.renderer);","path":"src/three-components/Renderer.js","position":12,"original_position":12,"commit_id":"32aff139586ee98537e69754ca744b068cdaab24","original_commit_id":"32aff139586ee98537e69754ca744b068cdaab24","user":{"login":"cdata","id":240083,"node_id":"MDQ6VXNlcjI0MDA4Mw==","avatar_url":"https://avatars3.githubusercontent.com/u/240083?v=4","gravatar_id":"","url":"https://api.github.com/users/cdata","html_url":"https://github.com/cdata","followers_url":"https://api.github.com/users/cdata/followers","following_url":"https://api.github.com/users/cdata/following{/other_user}","gists_url":"https://api.github.com/users/cdata/gists{/gist_id}","starred_url":"https://api.github.com/users/cdata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cdata/subscriptions","organizations_url":"https://api.github.com/users/cdata/orgs","repos_url":"https://api.github.com/users/cdata/repos","events_url":"https://api.github.com/users/cdata/events{/privacy}","received_events_url":"https://api.github.com/users/cdata/received_events","type":"User","site_admin":false},"body":"This seems orthogonal to the `renderer` in all ways but lifetime. And the `renderer` is never disposed in practice (is that correct? should it be disposed under some set of circumstances?), so the texture manager won't be either.\r\n\r\nWhat I'm driving at: is the texture manager relevant to the `renderer`, or the `environment` feature? Does it belong here?","created_at":"2018-11-12T22:30:00Z","updated_at":"2018-11-12T22:34:29Z","html_url":"https://github.com/GoogleWebComponents/model-viewer/pull/153#discussion_r232834815","pull_request_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/153","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/comments/232834815"},"html":{"href":"https://github.com/GoogleWebComponents/model-viewer/pull/153#discussion_r232834815"},"pull_request":{"href":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/153"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/153","id":230276674,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMwMjc2Njc0","html_url":"https://github.com/GoogleWebComponents/model-viewer/pull/153","diff_url":"https://github.com/GoogleWebComponents/model-viewer/pull/153.diff","patch_url":"https://github.com/GoogleWebComponents/model-viewer/pull/153.patch","issue_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/issues/153","number":153,"state":"open","locked":false,"title":"Fix texture memory leak","user":{"login":"jsantell","id":641267,"node_id":"MDQ6VXNlcjY0MTI2Nw==","avatar_url":"https://avatars2.githubusercontent.com/u/641267?v=4","gravatar_id":"","url":"https://api.github.com/users/jsantell","html_url":"https://github.com/jsantell","followers_url":"https://api.github.com/users/jsantell/followers","following_url":"https://api.github.com/users/jsantell/following{/other_user}","gists_url":"https://api.github.com/users/jsantell/gists{/gist_id}","starred_url":"https://api.github.com/users/jsantell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsantell/subscriptions","organizations_url":"https://api.github.com/users/jsantell/orgs","repos_url":"https://api.github.com/users/jsantell/repos","events_url":"https://api.github.com/users/jsantell/events{/privacy}","received_events_url":"https://api.github.com/users/jsantell/received_events","type":"User","site_admin":false},"body":"Convert TextureUtils to TextureManager such that the renderer owns themanager so new texture helper instances do not need to be created, and properly dispose of textures that are no longer being used. Fixes #138, memory leak introduced by textures.","created_at":"2018-11-12T21:39:45Z","updated_at":"2018-11-12T22:34:29Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3fff6f001055c6b5a72a836b9fd3dd031d36fc09","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/153/commits","review_comments_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/153/comments","review_comment_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/issues/153/comments","statuses_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/statuses/32aff139586ee98537e69754ca744b068cdaab24","head":{"label":"GoogleWebComponents:138","ref":"138","sha":"32aff139586ee98537e69754ca744b068cdaab24","user":{"login":"GoogleWebComponents","id":7328930,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczMjg5MzA=","avatar_url":"https://avatars1.githubusercontent.com/u/7328930?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleWebComponents","html_url":"https://github.com/GoogleWebComponents","followers_url":"https://api.github.com/users/GoogleWebComponents/followers","following_url":"https://api.github.com/users/GoogleWebComponents/following{/other_user}","gists_url":"https://api.github.com/users/GoogleWebComponents/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleWebComponents/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleWebComponents/subscriptions","organizations_url":"https://api.github.com/users/GoogleWebComponents/orgs","repos_url":"https://api.github.com/users/GoogleWebComponents/repos","events_url":"https://api.github.com/users/GoogleWebComponents/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleWebComponents/received_events","type":"Organization","site_admin":false},"repo":{"id":153651476,"node_id":"MDEwOlJlcG9zaXRvcnkxNTM2NTE0NzY=","name":"model-viewer","full_name":"GoogleWebComponents/model-viewer","private":false,"owner":{"login":"GoogleWebComponents","id":7328930,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczMjg5MzA=","avatar_url":"https://avatars1.githubusercontent.com/u/7328930?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleWebComponents","html_url":"https://github.com/GoogleWebComponents","followers_url":"https://api.github.com/users/GoogleWebComponents/followers","following_url":"https://api.github.com/users/GoogleWebComponents/following{/other_user}","gists_url":"https://api.github.com/users/GoogleWebComponents/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleWebComponents/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleWebComponents/subscriptions","organizations_url":"https://api.github.com/users/GoogleWebComponents/orgs","repos_url":"https://api.github.com/users/GoogleWebComponents/repos","events_url":"https://api.github.com/users/GoogleWebComponents/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleWebComponents/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/GoogleWebComponents/model-viewer","description":"Easily display interactive 3D models on the web and in AR! ","fork":false,"url":"https://api.github.com/repos/GoogleWebComponents/model-viewer","forks_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/forks","keys_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/teams","hooks_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/hooks","issue_events_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/events","assignees_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/tags","blobs_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/languages","stargazers_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/stargazers","contributors_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/contributors","subscribers_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/subscribers","subscription_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/subscription","commits_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/merges","archive_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/downloads","issues_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/labels{/name}","releases_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/deployments","created_at":"2018-10-18T16:05:16Z","updated_at":"2018-11-12T20:38:46Z","pushed_at":"2018-11-12T22:27:09Z","git_url":"git://github.com/GoogleWebComponents/model-viewer.git","ssh_url":"git@github.com:GoogleWebComponents/model-viewer.git","clone_url":"https://github.com/GoogleWebComponents/model-viewer.git","svn_url":"https://github.com/GoogleWebComponents/model-viewer","homepage":"","size":116066,"stargazers_count":10,"watchers_count":10,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":54,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":1,"open_issues":54,"watchers":10,"default_branch":"master"}},"base":{"label":"GoogleWebComponents:master","ref":"master","sha":"eefc2d78e8b2403520113fa8728f5b56d77dc257","user":{"login":"GoogleWebComponents","id":7328930,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczMjg5MzA=","avatar_url":"https://avatars1.githubusercontent.com/u/7328930?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleWebComponents","html_url":"https://github.com/GoogleWebComponents","followers_url":"https://api.github.com/users/GoogleWebComponents/followers","following_url":"https://api.github.com/users/GoogleWebComponents/following{/other_user}","gists_url":"https://api.github.com/users/GoogleWebComponents/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleWebComponents/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleWebComponents/subscriptions","organizations_url":"https://api.github.com/users/GoogleWebComponents/orgs","repos_url":"https://api.github.com/users/GoogleWebComponents/repos","events_url":"https://api.github.com/users/GoogleWebComponents/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleWebComponents/received_events","type":"Organization","site_admin":false},"repo":{"id":153651476,"node_id":"MDEwOlJlcG9zaXRvcnkxNTM2NTE0NzY=","name":"model-viewer","full_name":"GoogleWebComponents/model-viewer","private":false,"owner":{"login":"GoogleWebComponents","id":7328930,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczMjg5MzA=","avatar_url":"https://avatars1.githubusercontent.com/u/7328930?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleWebComponents","html_url":"https://github.com/GoogleWebComponents","followers_url":"https://api.github.com/users/GoogleWebComponents/followers","following_url":"https://api.github.com/users/GoogleWebComponents/following{/other_user}","gists_url":"https://api.github.com/users/GoogleWebComponents/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleWebComponents/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleWebComponents/subscriptions","organizations_url":"https://api.github.com/users/GoogleWebComponents/orgs","repos_url":"https://api.github.com/users/GoogleWebComponents/repos","events_url":"https://api.github.com/users/GoogleWebComponents/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleWebComponents/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/GoogleWebComponents/model-viewer","description":"Easily display interactive 3D models on the web and in AR! ","fork":false,"url":"https://api.github.com/repos/GoogleWebComponents/model-viewer","forks_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/forks","keys_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/teams","hooks_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/hooks","issue_events_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/events","assignees_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/tags","blobs_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/languages","stargazers_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/stargazers","contributors_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/contributors","subscribers_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/subscribers","subscription_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/subscription","commits_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/merges","archive_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/downloads","issues_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/labels{/name}","releases_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleWebComponents/model-viewer/deployments","created_at":"2018-10-18T16:05:16Z","updated_at":"2018-11-12T20:38:46Z","pushed_at":"2018-11-12T22:27:09Z","git_url":"git://github.com/GoogleWebComponents/model-viewer.git","ssh_url":"git@github.com:GoogleWebComponents/model-viewer.git","clone_url":"https://github.com/GoogleWebComponents/model-viewer.git","svn_url":"https://github.com/GoogleWebComponents/model-viewer","homepage":"","size":116066,"stargazers_count":10,"watchers_count":10,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":54,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":1,"open_issues":54,"watchers":10,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/153"},"html":{"href":"https://github.com/GoogleWebComponents/model-viewer/pull/153"},"issue":{"href":"https://api.github.com/repos/GoogleWebComponents/model-viewer/issues/153"},"comments":{"href":"https://api.github.com/repos/GoogleWebComponents/model-viewer/issues/153/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/153/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleWebComponents/model-viewer/pulls/153/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleWebComponents/model-viewer/statuses/32aff139586ee98537e69754ca744b068cdaab24"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"cdata"}}