mirror of https://github.com/sotrh/learn-wgpu
Deploying to gh-pages from @ sotrh/learn-wgpu@57a6ff4bc3 🚀
parent
cf18862d4f
commit
86635bd58a
@ -1 +1 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{445:function(t,r,e){},541:function(t,r,e){"use strict";var a=e(1),n=e(2),o=e(32),i=e(64),u=e(14),s=n("".slice),l=Math.max,c=Math.min;a({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(t,r){var e,a,n=u(o(this)),_=n.length,m=i(t);return m===1/0&&(m=0),m<0&&(m=l(_+m,0)),(e=void 0===r?_:i(r))<=0||e===1/0||m>=(a=c(m+e,_))?"":s(n,m,a)}})},542:function(t,r,e){var a={"./tutorial10_lighting/tutorial10_lighting.js":[545,0,2,48],"./tutorial10_lighting/tutorial10_lighting_bg.js":[363,0,2],"./tutorial11_normals/tutorial11_normals.js":[556,0,3,49],"./tutorial11_normals/tutorial11_normals_bg.js":[364,0,3],"./tutorial12_camera/tutorial12_camera.js":[557,0,4,50],"./tutorial12_camera/tutorial12_camera_bg.js":[365,0,4],"./tutorial2_surface/tutorial2_surface.js":[558,0,6,51],"./tutorial2_surface/tutorial2_surface_bg.js":[367,0,6],"./tutorial3_pipeline/tutorial3_pipeline.js":[559,0,7,52],"./tutorial3_pipeline/tutorial3_pipeline_bg.js":[368,0,7],"./tutorial4_buffer/tutorial4_buffer.js":[560,0,8,53],"./tutorial4_buffer/tutorial4_buffer_bg.js":[369,0,8],"./tutorial5_textures/tutorial5_textures.js":[561,0,9,54],"./tutorial5_textures/tutorial5_textures_bg.js":[370,0,9],"./tutorial6_uniforms/tutorial6_uniforms.js":[562,0,10,55],"./tutorial6_uniforms/tutorial6_uniforms_bg.js":[371,0,10],"./tutorial7_instancing/tutorial7_instancing.js":[563,0,11,56],"./tutorial7_instancing/tutorial7_instancing_bg.js":[372,0,11],"./tutorial8_depth/tutorial8_depth.js":[564,0,12,57],"./tutorial8_depth/tutorial8_depth_bg.js":[373,0,12],"./tutorial9_models/tutorial9_models.js":[565,0,5,58],"./tutorial9_models/tutorial9_models_bg.js":[366,0,5]};function n(t){if(!e.o(a,t))return Promise.resolve().then((function(){var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}));var r=a[t],n=r[0];return Promise.all(r.slice(1).map(e.e)).then((function(){return e(n)}))}n.keys=function(){return Object.keys(a)},n.id=542,t.exports=n},543:function(t,r,e){"use strict";e(445)},570:function(t,r,e){"use strict";e.r(r);var a=e(87);e(135),e(29),e(93),e(541),e(8),e(18),e(25),e(123);var n={name:"WasmExample",props:{example:"",autoLoad:!1},data:function(){return{error:"",loading:!1,exampleStarted:!1}},computed:{exampleName:function(){return this.example.replace(/\w\S*/g,(function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()}))}},methods:{loadExample:function(){var t=this;return Object(a.a)(regeneratorRuntime.mark((function r(){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return t.loading=!0,r.prev=1,r.next=4,e(542)("./".concat(t.example,"/").concat(t.example,".js"));case 4:r.next=9;break;case 6:r.prev=6,r.t0=r.catch(1),"Error: Using exceptions for control flow, don't mind me. This isn't actually an error!"!="".concat(r.t0)?(t.error='An error occurred loading "'.concat(t.example,'": ').concat(r.t0),console.error(r.t0),t.exampleStarted=!1):t.exampleStarted=!0;case 9:t.loading=!1;case 10:case"end":return r.stop()}}),r,null,[[1,6]])})))()}},mounted:function(){var t=this;return Object(a.a)(regeneratorRuntime.mark((function r(){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.$nextTick();case 2:if(!t.autoLoad){r.next=5;break}return r.next=5,t.loadExample();case 5:case"end":return r.stop()}}),r)})))()}},o=(e(543),e(23)),i=Object(o.a)(n,(function(){var t=this,r=t.$createElement,e=t._self._c||r;return e("div",{attrs:{id:"wasm-example"}},[t.error?e("div",{staticClass:"error"},[t._v("\n "+t._s(t.error)+"\n ")]):t._e(),t._v(" "),t.exampleStarted||t.autoLoad?t._e():e("button",{attrs:{disabled:t.loading},on:{click:function(r){return t.loadExample()}}},[t._v("Try "+t._s(t.exampleName)+"!")])])}),[],!1,null,null,null);r.default=i.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{445:function(t,r,e){},541:function(t,r,e){"use strict";var a=e(1),n=e(2),o=e(32),i=e(64),u=e(14),s=n("".slice),l=Math.max,c=Math.min;a({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(t,r){var e,a,n=u(o(this)),_=n.length,m=i(t);return m===1/0&&(m=0),m<0&&(m=l(_+m,0)),(e=void 0===r?_:i(r))<=0||e===1/0||m>=(a=c(m+e,_))?"":s(n,m,a)}})},542:function(t,r,e){var a={"./tutorial10_lighting/tutorial10_lighting.js":[545,0,2,49],"./tutorial10_lighting/tutorial10_lighting_bg.js":[363,0,2],"./tutorial11_normals/tutorial11_normals.js":[556,0,3,50],"./tutorial11_normals/tutorial11_normals_bg.js":[364,0,3],"./tutorial12_camera/tutorial12_camera.js":[557,0,4,51],"./tutorial12_camera/tutorial12_camera_bg.js":[365,0,4],"./tutorial2_surface/tutorial2_surface.js":[558,0,6,52],"./tutorial2_surface/tutorial2_surface_bg.js":[367,0,6],"./tutorial3_pipeline/tutorial3_pipeline.js":[559,0,7,53],"./tutorial3_pipeline/tutorial3_pipeline_bg.js":[368,0,7],"./tutorial4_buffer/tutorial4_buffer.js":[560,0,8,54],"./tutorial4_buffer/tutorial4_buffer_bg.js":[369,0,8],"./tutorial5_textures/tutorial5_textures.js":[561,0,9,55],"./tutorial5_textures/tutorial5_textures_bg.js":[370,0,9],"./tutorial6_uniforms/tutorial6_uniforms.js":[562,0,10,56],"./tutorial6_uniforms/tutorial6_uniforms_bg.js":[371,0,10],"./tutorial7_instancing/tutorial7_instancing.js":[563,0,11,57],"./tutorial7_instancing/tutorial7_instancing_bg.js":[372,0,11],"./tutorial8_depth/tutorial8_depth.js":[564,0,12,58],"./tutorial8_depth/tutorial8_depth_bg.js":[373,0,12],"./tutorial9_models/tutorial9_models.js":[565,0,5,59],"./tutorial9_models/tutorial9_models_bg.js":[366,0,5]};function n(t){if(!e.o(a,t))return Promise.resolve().then((function(){var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}));var r=a[t],n=r[0];return Promise.all(r.slice(1).map(e.e)).then((function(){return e(n)}))}n.keys=function(){return Object.keys(a)},n.id=542,t.exports=n},543:function(t,r,e){"use strict";e(445)},570:function(t,r,e){"use strict";e.r(r);var a=e(87);e(135),e(29),e(93),e(541),e(8),e(18),e(25),e(123);var n={name:"WasmExample",props:{example:"",autoLoad:!1},data:function(){return{error:"",loading:!1,exampleStarted:!1}},computed:{exampleName:function(){return this.example.replace(/\w\S*/g,(function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()}))}},methods:{loadExample:function(){var t=this;return Object(a.a)(regeneratorRuntime.mark((function r(){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return t.loading=!0,r.prev=1,r.next=4,e(542)("./".concat(t.example,"/").concat(t.example,".js"));case 4:r.next=9;break;case 6:r.prev=6,r.t0=r.catch(1),"Error: Using exceptions for control flow, don't mind me. This isn't actually an error!"!="".concat(r.t0)?(t.error='An error occurred loading "'.concat(t.example,'": ').concat(r.t0),console.error(r.t0),t.exampleStarted=!1):t.exampleStarted=!0;case 9:t.loading=!1;case 10:case"end":return r.stop()}}),r,null,[[1,6]])})))()}},mounted:function(){var t=this;return Object(a.a)(regeneratorRuntime.mark((function r(){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,t.$nextTick();case 2:if(!t.autoLoad){r.next=5;break}return r.next=5,t.loadExample();case 5:case"end":return r.stop()}}),r)})))()}},o=(e(543),e(23)),i=Object(o.a)(n,(function(){var t=this,r=t.$createElement,e=t._self._c||r;return e("div",{attrs:{id:"wasm-example"}},[t.error?e("div",{staticClass:"error"},[t._v("\n "+t._s(t.error)+"\n ")]):t._e(),t._v(" "),t.exampleStarted||t.autoLoad?t._e():e("button",{attrs:{disabled:t.loading},on:{click:function(r){return t.loadExample()}}},[t._v("Try "+t._s(t.exampleName)+"!")])])}),[],!1,null,null,null);r.default=i.exports}}]);
|
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{446:function(t,e,n){},544:function(t,e,n){"use strict";n(446)},599:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(544),n(23)),a=Object(r.a)(i,void 0,void 0,!1,null,"86b323a0",null);e.default=a.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{446:function(t,e,n){},544:function(t,e,n){"use strict";n(446)},600:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(544),n(23)),a=Object(r.a)(i,void 0,void 0,!1,null,"86b323a0",null);e.default=a.exports}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{590:function(e,t,o){"use strict";o.r(t);var s=o(23),r=Object(s.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"foreword"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#foreword"}},[e._v("#")]),e._v(" Foreword")]),e._v(" "),o("p",[e._v("The articles in this section are not meant to be tutorials. They are showcases of the various things you can do with "),o("code",[e._v("wgpu")]),e._v(". I won't go over the specifics of creating "),o("code",[e._v("wgpu")]),e._v(" resources, as those will be covered elsewhere. The code for these examples is still available however and will be accessible on Github.")])])}),[],!1,null,null,null);t.default=r.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{591:function(e,t,o){"use strict";o.r(t);var s=o(23),r=Object(s.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"foreword"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#foreword"}},[e._v("#")]),e._v(" Foreword")]),e._v(" "),o("p",[e._v("The articles in this section are not meant to be tutorials. They are showcases of the various things you can do with "),o("code",[e._v("wgpu")]),e._v(". I won't go over the specifics of creating "),o("code",[e._v("wgpu")]),e._v(" resources, as those will be covered elsewhere. The code for these examples is still available however and will be accessible on Github.")])])}),[],!1,null,null,null);t.default=r.exports}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{598:function(t,s,n){"use strict";n.r(s);var e=n(23),o=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"coming-soon"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#coming-soon"}},[this._v("#")]),this._v(" Coming Soon!")]),this._v(" "),s("p",[this._v("This section has not yet been completed.")])])}),[],!1,null,null,null);s.default=o.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{599:function(t,s,n){"use strict";n.r(s);var e=n(23),o=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"coming-soon"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#coming-soon"}},[this._v("#")]),this._v(" Coming Soon!")]),this._v(" "),s("p",[this._v("This section has not yet been completed.")])])}),[],!1,null,null,null);s.default=o.exports}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>Update to 0.15! | Learn Wgpu</title>
|
||||
<meta name="generator" content="VuePress 1.9.7">
|
||||
|
||||
<meta name="description" content="">
|
||||
<meta property="article:modified_time" content="2023-02-05T00:56:39.000Z">
|
||||
<meta property="og:site_name" content="Learn Wgpu">
|
||||
<meta property="og:title" content="Update to 0.15!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="/learn-wgpu/news/0.15/">
|
||||
<meta name="twitter:title" content="Update to 0.15!">
|
||||
<meta name="twitter:url" content="/learn-wgpu/news/0.15/">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:label1" content="Written by">
|
||||
<meta name="twitter:data1" content="Benjamin Hansen">
|
||||
<meta name="twitter:creator" content="https://twitter.com/sotrh760">
|
||||
|
||||
<link rel="preload" href="/learn-wgpu/assets/css/1.styles.a09ac8f8.css" as="style"><link rel="preload" href="/learn-wgpu/assets/js/app.8b8554d4.js" as="script"><link rel="preload" href="/learn-wgpu/assets/js/14.ae52f492.js" as="script"><link rel="preload" href="/learn-wgpu/assets/js/44.3391b4a4.js" as="script"><link rel="prefetch" href="/learn-wgpu/assets/js/0.ca1c2622.js"><link rel="prefetch" href="/learn-wgpu/assets/js/10.9a8aaf99.js"><link rel="prefetch" href="/learn-wgpu/assets/js/11.5eb307d2.js"><link rel="prefetch" href="/learn-wgpu/assets/js/12.a1c0e722.js"><link rel="prefetch" href="/learn-wgpu/assets/js/15.84e6424a.js"><link rel="prefetch" href="/learn-wgpu/assets/js/16.b46265b1.js"><link rel="prefetch" href="/learn-wgpu/assets/js/17.a06f58e2.js"><link rel="prefetch" href="/learn-wgpu/assets/js/18.db314664.js"><link rel="prefetch" href="/learn-wgpu/assets/js/19.200690d9.js"><link rel="prefetch" href="/learn-wgpu/assets/js/2.b40c0774.js"><link rel="prefetch" href="/learn-wgpu/assets/js/20.7d43cf4e.js"><link rel="prefetch" href="/learn-wgpu/assets/js/21.0d1e41d4.js"><link rel="prefetch" href="/learn-wgpu/assets/js/22.b89591ff.js"><link rel="prefetch" href="/learn-wgpu/assets/js/23.e16260ad.js"><link rel="prefetch" href="/learn-wgpu/assets/js/24.deb3c0a2.js"><link rel="prefetch" href="/learn-wgpu/assets/js/25.4161d92a.js"><link rel="prefetch" href="/learn-wgpu/assets/js/26.4e4ba6a9.js"><link rel="prefetch" href="/learn-wgpu/assets/js/27.15fb3eff.js"><link rel="prefetch" href="/learn-wgpu/assets/js/28.93966b96.js"><link rel="prefetch" href="/learn-wgpu/assets/js/29.872bafe5.js"><link rel="prefetch" href="/learn-wgpu/assets/js/3.e386129f.js"><link rel="prefetch" href="/learn-wgpu/assets/js/30.a1f387de.js"><link rel="prefetch" href="/learn-wgpu/assets/js/31.6f9d8284.js"><link rel="prefetch" href="/learn-wgpu/assets/js/32.39833282.js"><link rel="prefetch" href="/learn-wgpu/assets/js/33.68c41a7b.js"><link rel="prefetch" href="/learn-wgpu/assets/js/34.f18254a4.js"><link rel="prefetch" href="/learn-wgpu/assets/js/35.dc8af93d.js"><link rel="prefetch" href="/learn-wgpu/assets/js/36.4a8d1583.js"><link rel="prefetch" href="/learn-wgpu/assets/js/37.4abf0071.js"><link rel="prefetch" href="/learn-wgpu/assets/js/38.7f1be385.js"><link rel="prefetch" href="/learn-wgpu/assets/js/39.5c1b2b6b.js"><link rel="prefetch" href="/learn-wgpu/assets/js/4.6845899f.js"><link rel="prefetch" href="/learn-wgpu/assets/js/40.8f1c5e70.js"><link rel="prefetch" href="/learn-wgpu/assets/js/41.f2ce7221.js"><link rel="prefetch" href="/learn-wgpu/assets/js/42.9444bcb9.js"><link rel="prefetch" href="/learn-wgpu/assets/js/43.e076a900.js"><link rel="prefetch" href="/learn-wgpu/assets/js/45.63638595.js"><link rel="prefetch" href="/learn-wgpu/assets/js/46.42ecbdb2.js"><link rel="prefetch" href="/learn-wgpu/assets/js/47.5575c8ee.js"><link rel="prefetch" href="/learn-wgpu/assets/js/48.f595f5ce.js"><link rel="prefetch" href="/learn-wgpu/assets/js/49.d1c94a6a.js"><link rel="prefetch" href="/learn-wgpu/assets/js/5.7b0bd849.js"><link rel="prefetch" href="/learn-wgpu/assets/js/50.b5ed2243.js"><link rel="prefetch" href="/learn-wgpu/assets/js/51.7de1e1a8.js"><link rel="prefetch" href="/learn-wgpu/assets/js/52.58e2bc49.js"><link rel="prefetch" href="/learn-wgpu/assets/js/53.17f0cc4c.js"><link rel="prefetch" href="/learn-wgpu/assets/js/54.876dabf5.js"><link rel="prefetch" href="/learn-wgpu/assets/js/55.f0f5f6ae.js"><link rel="prefetch" href="/learn-wgpu/assets/js/56.d763c1cd.js"><link rel="prefetch" href="/learn-wgpu/assets/js/57.f182e841.js"><link rel="prefetch" href="/learn-wgpu/assets/js/58.ee48f3f2.js"><link rel="prefetch" href="/learn-wgpu/assets/js/59.8482afee.js"><link rel="prefetch" href="/learn-wgpu/assets/js/6.35ad3e49.js"><link rel="prefetch" href="/learn-wgpu/assets/js/7.4d795aea.js"><link rel="prefetch" href="/learn-wgpu/assets/js/8.4a300570.js"><link rel="prefetch" href="/learn-wgpu/assets/js/9.f5d923c8.js">
|
||||
<link rel="stylesheet" href="/learn-wgpu/assets/css/1.styles.a09ac8f8.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="inner"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/learn-wgpu/" class="home-link router-link-active"><!----> <span class="site-name">Learn Wgpu</span></a> <div class="links"><!----> <div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div></div></div></header> <div class="sidebar-mask"></div> <div class="docs-layout"><aside class="sidebar"><!----> <ul class="sidebar-links"><li><a href="/learn-wgpu/" aria-current="page" class="sidebar-link">Introduction</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Beginner</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/learn-wgpu/beginner/tutorial1-window/" class="sidebar-link">Dependencies and the window</a></li><li><a href="/learn-wgpu/beginner/tutorial2-surface/" class="sidebar-link">The Surface</a></li><li><a href="/learn-wgpu/beginner/tutorial3-pipeline/" class="sidebar-link">The Pipeline</a></li><li><a href="/learn-wgpu/beginner/tutorial4-buffer/" class="sidebar-link">Buffers and Indices</a></li><li><a href="/learn-wgpu/beginner/tutorial5-textures/" class="sidebar-link">Textures and bind groups</a></li><li><a href="/learn-wgpu/beginner/tutorial6-uniforms/" class="sidebar-link">Uniform buffers and a 3d camera</a></li><li><a href="/learn-wgpu/beginner/tutorial7-instancing/" class="sidebar-link">Instancing</a></li><li><a href="/learn-wgpu/beginner/tutorial8-depth/" class="sidebar-link">The Depth Buffer</a></li><li><a href="/learn-wgpu/beginner/tutorial9-models/" class="sidebar-link">Model Loading</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Intermediate</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/learn-wgpu/intermediate/tutorial10-lighting/" class="sidebar-link">Working with Lights</a></li><li><a href="/learn-wgpu/intermediate/tutorial11-normals/" class="sidebar-link">Normal Mapping</a></li><li><a href="/learn-wgpu/intermediate/tutorial12-camera/" class="sidebar-link">A Better Camera</a></li></ul></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>Showcase</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>News</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/learn-wgpu/news/0.15/" aria-current="page" class="active sidebar-link">Update to 0.15!</a></li><li><a href="/learn-wgpu/news/0.14/" class="sidebar-link">Update to 0.14!</a></li><li><a href="/learn-wgpu/news/0.13/" class="sidebar-link">Update to 0.13!</a></li><li><a href="/learn-wgpu/news/0.12/" class="sidebar-link">Update to 0.12!</a></li><li><a href="/learn-wgpu/news/pre-0.12/" class="sidebar-link">News (Pre 0.12)</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="update-to-0-15"><a href="#update-to-0-15" class="header-anchor">#</a> Update to 0.15!</h1> <p>This is a pretty minor update for this tutorial, but there are a few things to consider.</p> <ol><li>A <code>view_formats</code> field was added to <code>TextureDescriptor</code> and <code>SurfaceDescriptor</code>. This allows you to specify different <code>TextureFormat</code>s that can be used when creating <code>TextureView</code>s. At time of writing this pretty much only allows you to switch between using SRGB and linear formats. For example:</li></ol> <div class="language-rust extra-class"><pre class="language-rust"><code><span class="token class-name">TextureDescriptor</span> <span class="token punctuation">{</span>
|
||||
<span class="token comment">// other fields...</span>
|
||||
format<span class="token punctuation">:</span> <span class="token namespace">wgpu<span class="token punctuation">::</span></span><span class="token class-name">TextureFormat</span><span class="token punctuation">::</span><span class="token class-name">Rgba8UnormSrgb</span><span class="token punctuation">,</span>
|
||||
view_formats<span class="token punctuation">:</span> <span class="token operator">&</span><span class="token punctuation">[</span><span class="token namespace">wgpu<span class="token punctuation">::</span></span><span class="token class-name">TextureFormat</span><span class="token punctuation">::</span><span class="token class-name">Rgba8Unorm</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
<span class="token punctuation">}</span>
|
||||
</code></pre></div><p>The format used to create the <code>Texture</code> will always be supported, so you don't have to specify it.</p> <ol start="2"><li>The method of acquiring texture formats supported by the <code>Surface</code> has changed. Previously there was a <code>get_supported_formats()</code> that would return a <code>Vec<TextureFormat></code>. Now <code>Surface</code> has a <code>get_capabilities()</code> method. This will return a <code>SurfaceCapabilities</code> object that will have the supported formats as well as some other fields that you can checkout <a href="https://docs.rs/wgpu/latest/wgpu/struct.SurfaceCapabilities.html" target="_blank" rel="noopener noreferrer">here<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>. I'm using it in the tutorial like this:</li></ol> <div class="language-rust extra-class"><pre class="language-rust"><code><span class="token keyword">let</span> surface_caps <span class="token operator">=</span> surface<span class="token punctuation">.</span><span class="token function">get_capabilities</span><span class="token punctuation">(</span><span class="token operator">&</span>adapter<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<span class="token comment">// Shader code in this tutorial assumes an Srgb surface texture. Using a different</span>
|
||||
<span class="token comment">// one will result all the colors comming out darker. If you want to support non</span>
|
||||
<span class="token comment">// Srgb surfaces, you'll need to account for that when drawing to the frame.</span>
|
||||
<span class="token keyword">let</span> surface_format <span class="token operator">=</span> surface_caps<span class="token punctuation">.</span>formats<span class="token punctuation">.</span><span class="token function">iter</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<span class="token punctuation">.</span><span class="token function">copied</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span><span class="token closure-params"><span class="token closure-punctuation punctuation">|</span>f<span class="token closure-punctuation punctuation">|</span></span> f<span class="token punctuation">.</span><span class="token function">describe</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>srgb<span class="token punctuation">)</span>
|
||||
<span class="token punctuation">.</span><span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<span class="token punctuation">.</span><span class="token function">unwrap_or</span><span class="token punctuation">(</span>surface_caps<span class="token punctuation">.</span>formats<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<span class="token keyword">let</span> config <span class="token operator">=</span> <span class="token namespace">wgpu<span class="token punctuation">::</span></span><span class="token class-name">SurfaceConfiguration</span> <span class="token punctuation">{</span>
|
||||
usage<span class="token punctuation">:</span> <span class="token namespace">wgpu<span class="token punctuation">::</span></span><span class="token class-name">TextureUsages</span><span class="token punctuation">::</span><span class="token constant">RENDER_ATTACHMENT</span><span class="token punctuation">,</span>
|
||||
format<span class="token punctuation">:</span> surface_format<span class="token punctuation">,</span>
|
||||
width<span class="token punctuation">:</span> size<span class="token punctuation">.</span>width<span class="token punctuation">,</span>
|
||||
height<span class="token punctuation">:</span> size<span class="token punctuation">.</span>height<span class="token punctuation">,</span>
|
||||
present_mode<span class="token punctuation">:</span> surface_caps<span class="token punctuation">.</span>present_modes<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
alpha_mode<span class="token punctuation">:</span> surface_caps<span class="token punctuation">.</span>alpha_modes<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
view_formats<span class="token punctuation">:</span> <span class="token macro property">vec!</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||||
</code></pre></div><p>As always let me know if I missed anything. You can check out the full changelog for 0.15 <a href="https://github.com/gfx-rs/wgpu/blob/master/CHANGELOG.md#wgpu-0150-2023-01-25" target="_blank" rel="noopener noreferrer">here<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated: </span> <span class="time">2/5/2023, 12:56:39 AM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
||||
←
|
||||
<a href="/learn-wgpu/showcase/alignment/" class="prev">
|
||||
Memory Layout in WGSL
|
||||
</a></span> <span class="next"><a href="/learn-wgpu/news/0.14/">
|
||||
Update to 0.14!
|
||||
</a>
|
||||
→
|
||||
</span></p></div> </main></div></div><div class="global-ui"><!----></div></div>
|
||||
<script src="/learn-wgpu/assets/js/app.8b8554d4.js" defer></script><script src="/learn-wgpu/assets/js/14.ae52f492.js" defer></script><script src="/learn-wgpu/assets/js/44.3391b4a4.js" defer></script>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue