Changeset 238741 in webkit
- Timestamp:
- Nov 30, 2018, 10:14:52 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 16 edited
- 6 copied
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/webgpu/js/basic-webgpu-functions.js (modified) (1 diff)
-
LayoutTests/webgpu/render-command-encoding.html (modified) (1 diff)
-
LayoutTests/webgpu/render-passes.html (modified) (1 diff)
-
Source/WebCore/CMakeLists.txt (modified) (2 diffs)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/DerivedSources.make (modified) (2 diffs)
-
Source/WebCore/Modules/webgpu/WebGPUColor.h (copied) (copied from trunk/Source/WebCore/platform/graphics/gpu/GPURenderPassDescriptor.h ) (1 diff)
-
Source/WebCore/Modules/webgpu/WebGPUColor.idl (copied) (copied from trunk/Source/WebCore/platform/graphics/gpu/GPURenderPassDescriptor.h ) (1 diff)
-
Source/WebCore/Modules/webgpu/WebGPUCommandBuffer.cpp (modified) (1 diff)
-
Source/WebCore/Modules/webgpu/WebGPURenderPassColorAttachmentDescriptor.h (copied) (copied from trunk/Source/WebCore/Modules/webgpu/WebGPURenderPassDescriptor.h ) (1 diff)
-
Source/WebCore/Modules/webgpu/WebGPURenderPassColorAttachmentDescriptor.idl (copied) (copied from trunk/Source/WebCore/Modules/webgpu/WebGPURenderPassDescriptor.idl ) (1 diff)
-
Source/WebCore/Modules/webgpu/WebGPURenderPassDescriptor.h (modified) (1 diff)
-
Source/WebCore/Modules/webgpu/WebGPURenderPassDescriptor.idl (modified) (1 diff)
-
Source/WebCore/Modules/webgpu/WebGPUTexture.cpp (modified) (1 diff)
-
Source/WebCore/Modules/webgpu/WebGPUTexture.h (modified) (2 diffs)
-
Source/WebCore/Sources.txt (modified) (2 diffs)
-
Source/WebCore/WebCore.xcodeproj/project.pbxproj (modified) (5 diffs)
-
Source/WebCore/platform/graphics/gpu/GPUColor.h (copied) (copied from trunk/Source/WebCore/platform/graphics/gpu/GPURenderPassDescriptor.h ) (1 diff)
-
Source/WebCore/platform/graphics/gpu/GPURenderPassColorAttachmentDescriptor.h (copied) (copied from trunk/Source/WebCore/platform/graphics/gpu/GPURenderPassDescriptor.h ) (1 diff)
-
Source/WebCore/platform/graphics/gpu/GPURenderPassDescriptor.h (modified) (1 diff)
-
Source/WebCore/platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r238737 r238741 1 2018-11-30 Justin Fan <justin_fan@apple.com> 2 3 [WebGPU] Flesh out WebGPURenderPassDescriptor to match the WebGPU IDL 4 https://bugs.webkit.org/show_bug.cgi?id=192213 5 6 Reviewed by Dean Jackson. 7 8 Updating some tests to match the updated WebGPURenderPassDescriptor. 9 10 * webgpu/js/basic-webgpu-functions.js: 11 (render): 12 * webgpu/render-command-encoding.html: 13 * webgpu/render-passes.html: 14 1 15 2018-11-30 Zalan Bujtas <zalan@apple.com> 2 16 -
trunk/LayoutTests/webgpu/js/basic-webgpu-functions.js
r238687 r238741 138 138 } 139 139 140 // FIXME: Flesh out the rest of WebGPURenderPassDescriptor. 141 // Default a loadOp, storeOp, and clearColor in the implementation for now. 140 // FIXME: Default a loadOp, and storeOp in the implementation for now. 141 const colorAttachmentDescriptor = { 142 attachment : textureView, 143 clearColor : { r:0.35, g:0.65, b:0.85, a:1.0 } 144 } 145 142 146 let renderPassDescriptor = { 143 attachment : textureView147 colorAttachments : [colorAttachmentDescriptor] 144 148 } 145 149 -
trunk/LayoutTests/webgpu/render-command-encoding.html
r238687 r238741 13 13 14 14 function beginPass() { 15 // FIXME: Flesh out the rest of WebGPURenderPassDescriptor. 16 // Default a loadOp, storeOp, and clearColor in the implementation for now. 17 const renderPassDescriptor = { 18 attachment : context.getNextTexture().createDefaultTextureView() 15 // Default a loadOp, storeOp in the implementation for now. 16 const colorAttachmentDescriptor = { 17 attachment: context.getNextTexture().createDefaultTextureView(), 18 clearColor: { r: 0.35, g: 0.65, b: 0.85, a: 1.0 } 19 } 20 21 let renderPassDescriptor = { 22 colorAttachments : [colorAttachmentDescriptor] 19 23 } 20 24 -
trunk/LayoutTests/webgpu/render-passes.html
r238687 r238741 11 11 function setUpBasicRenderPassEncoder() { 12 12 commandBuffer = defaultDevice.createCommandBuffer(); 13 const texture = context.getNextTexture();14 const textureView = texture.createDefaultTextureView();15 13 16 // FIXME: Flesh out the rest of WebGPURenderPassDescriptor. 17 // Default a loadOp, storeOp, and clearColor in the implementation for now. 18 const renderPassDescriptor = { 19 attachment : textureView 14 // Default a loadOp, storeOp in the implementation for now. 15 const colorAttachmentDescriptor = { 16 attachment: context.getNextTexture().createDefaultTextureView(), 17 clearColor: { r: 0.35, g: 0.65, b: 0.85, a: 1.0 } 18 } 19 20 let renderPassDescriptor = { 21 colorAttachments: [colorAttachmentDescriptor] 20 22 } 21 23 -
trunk/Source/WebCore/CMakeLists.txt
r238629 r238741 459 459 Modules/webgpu/WebGPUAdapter.idl 460 460 Modules/webgpu/WebGPUAdapterDescriptor.idl 461 Modules/webgpu/WebGPUColor.idl 461 462 Modules/webgpu/WebGPUCommandBuffer.idl 462 463 Modules/webgpu/WebGPUDevice.idl … … 465 466 Modules/webgpu/WebGPUProgrammablePassEncoder.idl 466 467 Modules/webgpu/WebGPUQueue.idl 468 Modules/webgpu/WebGPURenderPassColorAttachmentDescriptor.idl 467 469 Modules/webgpu/WebGPURenderPassDescriptor.idl 468 470 Modules/webgpu/WebGPURenderPassEncoder.idl -
trunk/Source/WebCore/ChangeLog
r238739 r238741 1 2018-11-30 Justin Fan <justin_fan@apple.com> 2 3 [WebGPU] Flesh out WebGPURenderPassDescriptor to match the WebGPU IDL 4 https://bugs.webkit.org/show_bug.cgi?id=192213 5 6 Reviewed by Dean Jackson. 7 8 WebGPU prototype now uses WebGPURenderPassColorAttachmentDescriptor in WebGPURenderPassDescriptor to match the WebGPU Sketch. 9 WebGPU developer can now also set the clearColor in WebGPURenderPassDescriptor. 10 11 No new tests. Older WebGPURenderPass* tests updated. 12 13 * CMakeLists.txt: 14 * DerivedSources.make: 15 * Modules/webgpu/WebGPUColor.h: Added. Typedef'd to GPUColor.h. 16 * Modules/webgpu/WebGPUColor.idl: Added. 17 * Modules/webgpu/WebGPUCommandBuffer.cpp: 18 (WebCore::WebGPUCommandBuffer::beginRenderPass): Updated to error check and support the new structure of WebGPURenderPassDescriptor. 19 * Modules/webgpu/WebGPURenderPassColorAttachmentDescriptor.h: Added. 20 * Modules/webgpu/WebGPURenderPassColorAttachmentDescriptor.idl: Added. 21 * Modules/webgpu/WebGPURenderPassDescriptor.h: 22 * Modules/webgpu/WebGPURenderPassDescriptor.idl: Updated to match the sketch IDL. 23 * Sources.txt: 24 * WebCore.xcodeproj/project.pbxproj: 25 * platform/graphics/gpu/GPUColor.h: Added. 26 * platform/graphics/gpu/GPURenderPassColorAttachmentDescriptor.h: Added. Backing struct for WebGPU__. 27 * platform/graphics/gpu/GPURenderPassDescriptor.h: Updated to match new WebGPURenderPassDescriptor. 28 * platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm: 29 (WebCore::GPURenderPassEncoder::create): Now also uses clearColor set by developer. 30 1 31 2018-11-30 Andy Estes <aestes@apple.com> 2 32 -
trunk/Source/WebCore/DerivedSources.make
r238739 r238741 376 376 $(WebCore)/Modules/webgpu/WebGPUAdapter.idl \ 377 377 $(WebCore)/Modules/webgpu/WebGPUAdapterDescriptor.idl \ 378 $(WebCore)/Modules/webgpu/WebGPUColor.idl \ 378 379 $(WebCore)/Modules/webgpu/WebGPUCommandBuffer.idl \ 379 380 $(WebCore)/Modules/webgpu/WebGPUDevice.idl \ … … 382 383 $(WebCore)/Modules/webgpu/WebGPUPipelineStageDescriptor.idl \ 383 384 $(WebCore)/Modules/webgpu/WebGPUProgrammablePassEncoder.idl \ 385 $(WebCore)/Modules/webgpu/WebGPURenderPassColorAttachmentDescriptor.idl \ 384 386 $(WebCore)/Modules/webgpu/WebGPURenderPassDescriptor.idl \ 385 387 $(WebCore)/Modules/webgpu/WebGPURenderPassEncoder.idl \ -
trunk/Source/WebCore/Modules/webgpu/WebGPUColor.h
r238740 r238741 28 28 #if ENABLE(WEBGPU) 29 29 30 #include "GPU Texture.h"30 #include "GPUColor.h" 31 31 32 32 namespace WebCore { 33 33 34 struct GPURenderPassDescriptor { 35 Ref<GPUTexture> attachment; 36 }; 34 using WebGPUColor = GPUColor; 37 35 38 36 } // namespace WebCore -
trunk/Source/WebCore/Modules/webgpu/WebGPUColor.idl
r238740 r238741 23 23 * THE POSSIBILITY OF SUCH DAMAGE. 24 24 */ 25 // https://github.com/gpuweb/gpuweb/blob/master/design/sketch.webidl 25 26 26 #pragma once 27 28 #if ENABLE(WEBGPU) 29 30 #include "GPUTexture.h" 31 32 namespace WebCore { 33 34 struct GPURenderPassDescriptor { 35 Ref<GPUTexture> attachment; 27 [ 28 Conditional=WEBGPU, 29 EnabledAtRuntime=WebGPU 30 ] dictionary WebGPUColor { 31 float r; 32 float g; 33 float b; 34 float a; 36 35 }; 37 38 } // namespace WebCore39 40 #endif // ENABLE(WEBGPU) -
trunk/Source/WebCore/Modules/webgpu/WebGPUCommandBuffer.cpp
r238687 r238741 54 54 { 55 55 // FIXME: Improve error checking as WebGPURenderPassDescriptor is implemented. 56 if ( !descriptor.attachment) {57 LOG(WebGPU, "WebGPUCommandBuffer::create(): No attachment specified for WebGPURenderPassDescriptor!");56 if (descriptor.colorAttachments.isEmpty()) { 57 LOG(WebGPU, "WebGPUCommandBuffer::create(): No attachments specified for WebGPURenderPassDescriptor!"); 58 58 return nullptr; 59 59 } 60 61 auto encoder = GPURenderPassEncoder::create(m_commandBuffer.get(), GPURenderPassDescriptor { descriptor.attachment->texture() }); 60 61 GPURenderPassDescriptor gpuRenderPassDescriptor; 62 63 for (const auto& colorAttachment : descriptor.colorAttachments) { 64 if (!colorAttachment.attachment) { 65 LOG(WebGPU, "WebGPUCommandBuffer::create(): Invalid attachment in WebGPURenderPassColorAttachmentDescriptor!"); 66 return nullptr; 67 } 68 gpuRenderPassDescriptor.colorAttachments.append(GPURenderPassColorAttachmentDescriptor { colorAttachment.attachment->texture(), colorAttachment.clearColor }); 69 } 70 71 auto encoder = GPURenderPassEncoder::create(m_commandBuffer.get(), WTFMove(gpuRenderPassDescriptor)); 62 72 63 73 if (!encoder) -
trunk/Source/WebCore/Modules/webgpu/WebGPURenderPassColorAttachmentDescriptor.h
r238740 r238741 28 28 #if ENABLE(WEBGPU) 29 29 30 #include "WebGPUColor.h" 30 31 #include "WebGPUTextureView.h" 31 32 32 33 namespace WebCore { 33 34 34 struct WebGPURenderPassDescriptor { 35 // FIXME: Temporary shortcut implementation for prototyping. 35 struct WebGPURenderPassColorAttachmentDescriptor { 36 36 RefPtr<WebGPUTextureView> attachment; 37 38 WebGPUColor clearColor; 37 39 }; 38 40 -
trunk/Source/WebCore/Modules/webgpu/WebGPURenderPassColorAttachmentDescriptor.idl
r238740 r238741 28 28 Conditional=WEBGPU, 29 29 EnabledAtRuntime=WebGPU 30 ] dictionary WebGPURenderPassDescriptor { 31 // FIXME: Temporary shortcut implementation for prototyping. 30 ] dictionary WebGPURenderPassColorAttachmentDescriptor { 32 31 WebGPUTextureView attachment; 33 32 34 /* Not Yet Implemented: 35 sequence<WebGPURenderPassColorAttachmentDescriptor> colorAttachments;36 WebGPURenderPassDepthStencilAttachmentDescriptor depthStencilAttachment;37 */ 33 // Not Yet Implemented 34 // WebGPULoadOp loadOp; 35 // WebGPUStoreOp storeOp; 36 WebGPUColor clearColor; 38 37 }; -
trunk/Source/WebCore/Modules/webgpu/WebGPURenderPassDescriptor.h
r238629 r238741 28 28 #if ENABLE(WEBGPU) 29 29 30 #include "WebGPUTextureView.h" 30 #include "WebGPURenderPassColorAttachmentDescriptor.h" 31 32 #include <wtf/Vector.h> 31 33 32 34 namespace WebCore { 33 35 34 36 struct WebGPURenderPassDescriptor { 35 // FIXME: Temporary shortcut implementation for prototyping. 36 RefPtr<WebGPUTextureView> attachment; 37 Vector<WebGPURenderPassColorAttachmentDescriptor> colorAttachments; 37 38 }; 38 39 -
trunk/Source/WebCore/Modules/webgpu/WebGPURenderPassDescriptor.idl
r238629 r238741 29 29 EnabledAtRuntime=WebGPU 30 30 ] dictionary WebGPURenderPassDescriptor { 31 // FIXME: Temporary shortcut implementation for prototyping.32 WebGPUTextureView attachment;33 34 /* Not Yet Implemented:35 31 sequence<WebGPURenderPassColorAttachmentDescriptor> colorAttachments; 36 WebGPURenderPassDepthStencilAttachmentDescriptor depthStencilAttachment; 37 */ 32 // WebGPURenderPassDepthStencilAttachmentDescriptor depthStencilAttachment; 38 33 }; -
trunk/Source/WebCore/Modules/webgpu/WebGPUTexture.cpp
r238687 r238741 29 29 #if ENABLE(WEBGPU) 30 30 31 #include "GPUTexture.h"32 31 #include "WebGPUTextureView.h" 33 32 -
trunk/Source/WebCore/Modules/webgpu/WebGPUTexture.h
r238687 r238741 28 28 #if ENABLE(WEBGPU) 29 29 30 #include "GPUTexture.h" 31 30 32 #include <wtf/RefCounted.h> 31 33 #include <wtf/RefPtr.h> … … 33 35 namespace WebCore { 34 36 35 class GPUTexture;36 37 class WebGPUTextureView; 37 38 -
trunk/Source/WebCore/Sources.txt
r238667 r238741 3222 3222 JSWebGPUAdapterDescriptor.cpp 3223 3223 JSWebGPUCommandBuffer.cpp 3224 JSWebGPUColor.cpp 3224 3225 JSWebGPUDevice.cpp 3225 3226 JSWebGPUQueue.cpp … … 3228 3229 JSWebGPUProgrammablePassEncoder.cpp 3229 3230 JSWebGPURenderingContext.cpp 3231 JSWebGPURenderPassColorAttachmentDescriptor.cpp 3230 3232 JSWebGPURenderPassDescriptor.cpp 3231 3233 JSWebGPURenderPassEncoder.cpp -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r238739 r238741 13704 13704 D000ED2511C1B9CD00C47726 /* SubframeLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SubframeLoader.cpp; sourceTree = "<group>"; }; 13705 13705 D000ED2611C1B9CD00C47726 /* SubframeLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SubframeLoader.h; sourceTree = "<group>"; }; 13706 D001D9A921B0C6730023B9BC /* GPURenderPassColorAttachmentDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPURenderPassColorAttachmentDescriptor.h; sourceTree = "<group>"; }; 13707 D001D9AB21B0C7BF0023B9BC /* GPUColor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUColor.h; sourceTree = "<group>"; }; 13708 D001D9AC21B0C81A0023B9BC /* WebGPUColor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPUColor.h; sourceTree = "<group>"; }; 13709 D001D9AD21B0C81A0023B9BC /* WebGPUColor.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebGPUColor.idl; sourceTree = "<group>"; }; 13710 D001D9B021B0C8A80023B9BC /* WebGPURenderPassColorAttachmentDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPURenderPassColorAttachmentDescriptor.h; sourceTree = "<group>"; }; 13711 D001D9B121B0C8A80023B9BC /* WebGPURenderPassColorAttachmentDescriptor.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebGPURenderPassColorAttachmentDescriptor.idl; sourceTree = "<group>"; }; 13706 13712 D00F5940216ECC7A000D71DB /* DOMWindowWebGPU.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DOMWindowWebGPU.h; sourceTree = "<group>"; }; 13707 13713 D00F5941216ECC7A000D71DB /* DOMWindowWebGPU.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = DOMWindowWebGPU.cpp; sourceTree = "<group>"; }; … … 18011 18017 D087CE3721ACA94200BDE174 /* cocoa */, 18012 18018 312FF8CE21A4C33F00EB199D /* legacy */, 18019 D001D9AB21B0C7BF0023B9BC /* GPUColor.h */, 18013 18020 312FF8BD21A4C2F100EB199D /* GPUCommandBuffer.h */, 18014 18021 312FF8BF21A4C2F100EB199D /* GPUDevice.cpp */, … … 18018 18025 D03211CF21AC954E00763CF2 /* GPUProgrammablePassEncoder.h */, 18019 18026 312FF8C121A4C2F200EB199D /* GPUQueue.h */, 18027 D001D9A921B0C6730023B9BC /* GPURenderPassColorAttachmentDescriptor.h */, 18020 18028 D03211D021AC954F00763CF2 /* GPURenderPassDescriptor.h */, 18021 18029 D03211CE21AC954E00763CF2 /* GPURenderPassEncoder.h */, … … 25499 25507 D02C26912181416D00D818E4 /* WebGPUAdapterDescriptor.h */, 25500 25508 D02C26922181416D00D818E4 /* WebGPUAdapterDescriptor.idl */, 25509 D001D9AC21B0C81A0023B9BC /* WebGPUColor.h */, 25510 D001D9AD21B0C81A0023B9BC /* WebGPUColor.idl */, 25501 25511 D0EACF7721937228000FA75C /* WebGPUCommandBuffer.cpp */, 25502 25512 D0EACF7621937228000FA75C /* WebGPUCommandBuffer.h */, … … 25518 25528 D093D225217951D400329217 /* WebGPURenderingContext.h */, 25519 25529 D093D227217951D400329217 /* WebGPURenderingContext.idl */, 25530 D001D9B021B0C8A80023B9BC /* WebGPURenderPassColorAttachmentDescriptor.h */, 25531 D001D9B121B0C8A80023B9BC /* WebGPURenderPassColorAttachmentDescriptor.idl */, 25520 25532 D0EACF8C219403C9000FA75C /* WebGPURenderPassDescriptor.h */, 25521 25533 D0EACF8D219403C9000FA75C /* WebGPURenderPassDescriptor.idl */, -
trunk/Source/WebCore/platform/graphics/gpu/GPUColor.h
r238740 r238741 28 28 #if ENABLE(WEBGPU) 29 29 30 #include "GPUTexture.h"31 32 30 namespace WebCore { 33 31 34 struct GPURenderPassDescriptor { 35 Ref<GPUTexture> attachment; 32 struct GPUColor { 33 float r; 34 float g; 35 float b; 36 float a; 36 37 }; 37 38 -
trunk/Source/WebCore/platform/graphics/gpu/GPURenderPassColorAttachmentDescriptor.h
r238740 r238741 28 28 #if ENABLE(WEBGPU) 29 29 30 #include "GPUColor.h" 30 31 #include "GPUTexture.h" 31 32 32 33 namespace WebCore { 33 34 34 struct GPURenderPass Descriptor {35 struct GPURenderPassColorAttachmentDescriptor { 35 36 Ref<GPUTexture> attachment; 37 38 GPUColor clearColor; 36 39 }; 37 40 -
trunk/Source/WebCore/platform/graphics/gpu/GPURenderPassDescriptor.h
r238629 r238741 28 28 #if ENABLE(WEBGPU) 29 29 30 #include "GPUTexture.h" 30 #include "GPURenderPassColorAttachmentDescriptor.h" 31 32 #include <wtf/Vector.h> 31 33 32 34 namespace WebCore { 33 35 34 36 struct GPURenderPassDescriptor { 35 Ref<GPUTexture> attachment;37 Vector<GPURenderPassColorAttachmentDescriptor> colorAttachments; 36 38 }; 37 39 -
trunk/Source/WebCore/platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm
r238687 r238741 43 43 PlatformRenderPassEncoderSmartPtr mtlEncoder; 44 44 45 // FIXME: Default to colorAttachments[0] and this loadOp, storeOp for now. 46 const auto& attachmentDescriptor = descriptor.colorAttachments[0]; 47 const auto& color = attachmentDescriptor.clearColor; 48 45 49 BEGIN_BLOCK_OBJC_EXCEPTIONS; 46 50 47 51 auto mtlDescriptor = adoptNS([MTLRenderPassDescriptor new]); 48 52 49 // FIXME: Default to colorAttachments[0] and this loadOp, storeOp, clearColor for now. 50 mtlDescriptor.get().colorAttachments[0].texture = descriptor.attachment->platformTexture(); 53 mtlDescriptor.get().colorAttachments[0].texture = attachmentDescriptor.attachment->platformTexture(); 51 54 mtlDescriptor.get().colorAttachments[0].loadAction = MTLLoadActionClear; 52 55 mtlDescriptor.get().colorAttachments[0].storeAction = MTLStoreActionStore; 53 mtlDescriptor.get().colorAttachments[0].clearColor = MTLClearColorMake( 0.35, 0.65, 0.85, 1.0);56 mtlDescriptor.get().colorAttachments[0].clearColor = MTLClearColorMake(color.r, color.g, color.b, color.a); 54 57 55 58 mtlEncoder = retainPtr([buffer.platformCommandBuffer() renderCommandEncoderWithDescriptor:mtlDescriptor.get()]);
Note:
See TracChangeset
for help on using the changeset viewer.