{"action":"created","comment":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/comments/82487912","pull_request_review_id":3395665,"id":82487912,"diff_hunk":"@@ -306,18 +326,28 @@ Painter.prototype.translatePosMatrix = function(matrix, tile, translate, anchor)\n };\n \n Painter.prototype.saveTexture = function(texture) {\n-    var textures = this.reusableTextures[texture.size];\n-    if (!textures) {\n-        this.reusableTextures[texture.size] = [texture];\n+    var width = texture.width ? texture.width : texture.size,\n+        height = texture.height ? texture.height : texture.size;\n+    var widthTextures = this.reusableTextures[width];\n+    if (!widthTextures) {\n+        this.reusableTextures[width] = {};\n+        this.reusableTextures[width][height] = [texture];\n     } else {\n-        textures.push(texture);\n+        var textures = widthTextures[height];\n+        if (!textures) {\n+            widthTextures[height] = [texture];\n+        } else {\n+            textures.push(texture);\n+        }\n     }\n };\n \n-\n-Painter.prototype.getTexture = function(size) {\n-    var textures = this.reusableTextures[size];\n-    return textures && textures.length > 0 ? textures.pop() : null;\n+Painter.prototype.getTexture = function(width, height) {\n+    var widthTextures = this.reusableTextures[width];\n+    if (widthTextures) {\n+        var textures = widthTextures[height || width];\n+        return textures && textures.length > 0 ? textures.pop() : null;\n+    }","path":"js/render/painter.js","position":52,"original_position":83,"commit_id":"5224fa62b4c7bd5d1907d9acc76457eed13f7547","original_commit_id":"26ff40a8aeb22dca80c06f9da827d5364f343975","user":{"login":"lucaswoj","id":281306,"avatar_url":"https://avatars.githubusercontent.com/u/281306?v=3","gravatar_id":"","url":"https://api.github.com/users/lucaswoj","html_url":"https://github.com/lucaswoj","followers_url":"https://api.github.com/users/lucaswoj/followers","following_url":"https://api.github.com/users/lucaswoj/following{/other_user}","gists_url":"https://api.github.com/users/lucaswoj/gists{/gist_id}","starred_url":"https://api.github.com/users/lucaswoj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lucaswoj/subscriptions","organizations_url":"https://api.github.com/users/lucaswoj/orgs","repos_url":"https://api.github.com/users/lucaswoj/repos","events_url":"https://api.github.com/users/lucaswoj/events{/privacy}","received_events_url":"https://api.github.com/users/lucaswoj/received_events","type":"User","site_admin":false},"body":"Perfect 😄 ","created_at":"2016-10-07T23:51:37Z","updated_at":"2016-10-07T23:51:38Z","html_url":"https://github.com/mapbox/mapbox-gl-js/pull/3223#discussion_r82487912","pull_request_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/3223","_links":{"self":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/comments/82487912"},"html":{"href":"https://github.com/mapbox/mapbox-gl-js/pull/3223#discussion_r82487912"},"pull_request":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/3223"}}},"pull_request":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/3223","id":85882477,"html_url":"https://github.com/mapbox/mapbox-gl-js/pull/3223","diff_url":"https://github.com/mapbox/mapbox-gl-js/pull/3223.diff","patch_url":"https://github.com/mapbox/mapbox-gl-js/pull/3223.patch","issue_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/3223","number":3223,"state":"open","locked":false,"title":"Add fill-extrude-height and fill-extrude-base properties.","user":{"login":"lbud","id":3170312,"avatar_url":"https://avatars.githubusercontent.com/u/3170312?v=3","gravatar_id":"","url":"https://api.github.com/users/lbud","html_url":"https://github.com/lbud","followers_url":"https://api.github.com/users/lbud/followers","following_url":"https://api.github.com/users/lbud/following{/other_user}","gists_url":"https://api.github.com/users/lbud/gists{/gist_id}","starred_url":"https://api.github.com/users/lbud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lbud/subscriptions","organizations_url":"https://api.github.com/users/lbud/orgs","repos_url":"https://api.github.com/users/lbud/repos","events_url":"https://api.github.com/users/lbud/events{/privacy}","received_events_url":"https://api.github.com/users/lbud/received_events","type":"User","site_admin":false},"body":"This PR adds support for `fill-extrude-height` and `fill-extrude-base`.\r\n\r\nI would love to start getting some 👀  on this branch.\r\n\r\nNotably, this diverges from our existing patterns in the following ways: \r\n* Includes two different vertex interfaces in fill_bucket.js and diverges into fill VAOs or extrusion VAOs depending on the style\r\n* Adds a draw file that does not correspond to a style spec type: `draw_extrusion` handles complete drawing of extruded fills; this diversion happens in painter.js\r\n\r\n## To do:\r\n- [x] ~~spherical interpolation~~\r\n- [x] update package.json shas once all corresponding PRs are finalized.\r\n- [ ] work with @lucaswoj to figure out how to benchmark this feature\r\n\r\nCloses https://github.com/mapbox/mapbox-gl-js/issues/684.\r\n\r\nCompanion PRs:\r\nhttps://github.com/mapbox/mapbox-gl-style-spec/pull/495\r\nhttps://github.com/mapbox/mapbox-gl-test-suite/pull/145\r\nhttps://github.com/mapbox/mapbox-gl-shaders/pull/25\r\n\r\n@jfirebaugh @lucaswoj @mourner @mollymerp \r\n\r\n## Launch Checklist\r\n\r\n<!-- Thanks for the PR! Feel free to add or remove items from the checklist. -->\r\n\r\n - [x] briefly describe the changes in this PR\r\n - [x] write tests for all new functionality\r\n - [ ] document any changes to public APIs\r\n - [ ] post benchmark scores\r\n - [x] manually test the debug page\r\n","created_at":"2016-09-19T22:39:42Z","updated_at":"2016-10-07T23:51:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"61a73abddd1641da794bb44bd9b8e965f9b59dda","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/3223/commits","review_comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/3223/comments","review_comment_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/3223/comments","statuses_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/statuses/5224fa62b4c7bd5d1907d9acc76457eed13f7547","head":{"label":"mapbox:building_redux_renderbuffer_dds","ref":"building_redux_renderbuffer_dds","sha":"5224fa62b4c7bd5d1907d9acc76457eed13f7547","user":{"login":"mapbox","id":600935,"avatar_url":"https://avatars.githubusercontent.com/u/600935?v=3","gravatar_id":"","url":"https://api.github.com/users/mapbox","html_url":"https://github.com/mapbox","followers_url":"https://api.github.com/users/mapbox/followers","following_url":"https://api.github.com/users/mapbox/following{/other_user}","gists_url":"https://api.github.com/users/mapbox/gists{/gist_id}","starred_url":"https://api.github.com/users/mapbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mapbox/subscriptions","organizations_url":"https://api.github.com/users/mapbox/orgs","repos_url":"https://api.github.com/users/mapbox/repos","events_url":"https://api.github.com/users/mapbox/events{/privacy}","received_events_url":"https://api.github.com/users/mapbox/received_events","type":"Organization","site_admin":false},"repo":{"id":8629417,"name":"mapbox-gl-js","full_name":"mapbox/mapbox-gl-js","owner":{"login":"mapbox","id":600935,"avatar_url":"https://avatars.githubusercontent.com/u/600935?v=3","gravatar_id":"","url":"https://api.github.com/users/mapbox","html_url":"https://github.com/mapbox","followers_url":"https://api.github.com/users/mapbox/followers","following_url":"https://api.github.com/users/mapbox/following{/other_user}","gists_url":"https://api.github.com/users/mapbox/gists{/gist_id}","starred_url":"https://api.github.com/users/mapbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mapbox/subscriptions","organizations_url":"https://api.github.com/users/mapbox/orgs","repos_url":"https://api.github.com/users/mapbox/repos","events_url":"https://api.github.com/users/mapbox/events{/privacy}","received_events_url":"https://api.github.com/users/mapbox/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mapbox/mapbox-gl-js","description":"Interactive vector maps in the browser, powered by WebGL","fork":false,"url":"https://api.github.com/repos/mapbox/mapbox-gl-js","forks_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/forks","keys_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/teams","hooks_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/hooks","issue_events_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/events{/number}","events_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/events","assignees_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/assignees{/user}","branches_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/branches{/branch}","tags_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/tags","blobs_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/git/refs{/sha}","trees_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/statuses/{sha}","languages_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/languages","stargazers_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/stargazers","contributors_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/contributors","subscribers_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/subscribers","subscription_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/subscription","commits_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/commits{/sha}","git_commits_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/git/commits{/sha}","comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/comments{/number}","issue_comment_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/comments{/number}","contents_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/contents/{+path}","compare_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/merges","archive_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/downloads","issues_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues{/number}","pulls_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls{/number}","milestones_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/milestones{/number}","notifications_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/labels{/name}","releases_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/releases{/id}","deployments_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/deployments","created_at":"2013-03-07T14:45:24Z","updated_at":"2016-10-07T13:41:18Z","pushed_at":"2016-10-07T22:39:49Z","git_url":"git://github.com/mapbox/mapbox-gl-js.git","ssh_url":"git@github.com:mapbox/mapbox-gl-js.git","clone_url":"https://github.com/mapbox/mapbox-gl-js.git","svn_url":"https://github.com/mapbox/mapbox-gl-js","homepage":"https://www.mapbox.com/mapbox-gl-js/","size":32243,"stargazers_count":1244,"watchers_count":1244,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":255,"mirror_url":null,"open_issues_count":300,"forks":255,"open_issues":300,"watchers":1244,"default_branch":"master"}},"base":{"label":"mapbox:master","ref":"master","sha":"5994bc339ea5d350ff68a72e506c1a9cb2725462","user":{"login":"mapbox","id":600935,"avatar_url":"https://avatars.githubusercontent.com/u/600935?v=3","gravatar_id":"","url":"https://api.github.com/users/mapbox","html_url":"https://github.com/mapbox","followers_url":"https://api.github.com/users/mapbox/followers","following_url":"https://api.github.com/users/mapbox/following{/other_user}","gists_url":"https://api.github.com/users/mapbox/gists{/gist_id}","starred_url":"https://api.github.com/users/mapbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mapbox/subscriptions","organizations_url":"https://api.github.com/users/mapbox/orgs","repos_url":"https://api.github.com/users/mapbox/repos","events_url":"https://api.github.com/users/mapbox/events{/privacy}","received_events_url":"https://api.github.com/users/mapbox/received_events","type":"Organization","site_admin":false},"repo":{"id":8629417,"name":"mapbox-gl-js","full_name":"mapbox/mapbox-gl-js","owner":{"login":"mapbox","id":600935,"avatar_url":"https://avatars.githubusercontent.com/u/600935?v=3","gravatar_id":"","url":"https://api.github.com/users/mapbox","html_url":"https://github.com/mapbox","followers_url":"https://api.github.com/users/mapbox/followers","following_url":"https://api.github.com/users/mapbox/following{/other_user}","gists_url":"https://api.github.com/users/mapbox/gists{/gist_id}","starred_url":"https://api.github.com/users/mapbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mapbox/subscriptions","organizations_url":"https://api.github.com/users/mapbox/orgs","repos_url":"https://api.github.com/users/mapbox/repos","events_url":"https://api.github.com/users/mapbox/events{/privacy}","received_events_url":"https://api.github.com/users/mapbox/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mapbox/mapbox-gl-js","description":"Interactive vector maps in the browser, powered by WebGL","fork":false,"url":"https://api.github.com/repos/mapbox/mapbox-gl-js","forks_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/forks","keys_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/teams","hooks_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/hooks","issue_events_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/events{/number}","events_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/events","assignees_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/assignees{/user}","branches_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/branches{/branch}","tags_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/tags","blobs_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/git/refs{/sha}","trees_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/statuses/{sha}","languages_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/languages","stargazers_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/stargazers","contributors_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/contributors","subscribers_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/subscribers","subscription_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/subscription","commits_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/commits{/sha}","git_commits_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/git/commits{/sha}","comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/comments{/number}","issue_comment_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/comments{/number}","contents_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/contents/{+path}","compare_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/merges","archive_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/downloads","issues_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues{/number}","pulls_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls{/number}","milestones_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/milestones{/number}","notifications_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/labels{/name}","releases_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/releases{/id}","deployments_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/deployments","created_at":"2013-03-07T14:45:24Z","updated_at":"2016-10-07T13:41:18Z","pushed_at":"2016-10-07T22:39:49Z","git_url":"git://github.com/mapbox/mapbox-gl-js.git","ssh_url":"git@github.com:mapbox/mapbox-gl-js.git","clone_url":"https://github.com/mapbox/mapbox-gl-js.git","svn_url":"https://github.com/mapbox/mapbox-gl-js","homepage":"https://www.mapbox.com/mapbox-gl-js/","size":32243,"stargazers_count":1244,"watchers_count":1244,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":255,"mirror_url":null,"open_issues_count":300,"forks":255,"open_issues":300,"watchers":1244,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/3223"},"html":{"href":"https://github.com/mapbox/mapbox-gl-js/pull/3223"},"issue":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/3223"},"comments":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/3223/comments"},"review_comments":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/3223/comments"},"review_comment":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/3223/commits"},"statuses":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-js/statuses/5224fa62b4c7bd5d1907d9acc76457eed13f7547"}}}}
{"actor":{"display_login":"lucaswoj"}}