From b869ced648d286686a91db4f1a36d70266f64384 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Mon, 2 Jul 2018 10:21:41 +0100 Subject: [PATCH] Add RenderBatch reader abstraction (#1052) * In .JS project, make RenderBatch into an interface with SharedMemoryRenderBatch as implementation * In SharedMemoryRenderBatch, use prototype functions instead of assigning references on each instantiation --- .../src/GlobalExports.ts | 4 +- .../src/Rendering/BrowserRenderer.ts | 138 ++++++++++-------- .../src/Rendering/RenderBatch.ts | 39 ----- .../src/Rendering/RenderBatch/RenderBatch.ts | 82 +++++++++++ .../RenderBatch/SharedMemoryRenderBatch.ts | 89 +++++++++++ .../src/Rendering/RenderTreeEdit.ts | 29 ---- .../src/Rendering/RenderTreeFrame.ts | 38 ----- .../src/Rendering/Renderer.ts | 49 +++---- 8 files changed, 271 insertions(+), 197 deletions(-) delete mode 100644 src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Rendering/RenderBatch.ts create mode 100644 src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Rendering/RenderBatch/RenderBatch.ts create mode 100644 src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Rendering/RenderBatch/SharedMemoryRenderBatch.ts delete mode 100644 src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Rendering/RenderTreeEdit.ts delete mode 100644 src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Rendering/RenderTreeFrame.ts diff --git a/src/Microsoft.AspNetCore.Blazor.Browser.JS/src/GlobalExports.ts b/src/Microsoft.AspNetCore.Blazor.Browser.JS/src/GlobalExports.ts index 82b7f4d890..f5e8512200 100644 --- a/src/Microsoft.AspNetCore.Blazor.Browser.JS/src/GlobalExports.ts +++ b/src/Microsoft.AspNetCore.Blazor.Browser.JS/src/GlobalExports.ts @@ -2,6 +2,8 @@ import { platform } from './Environment'; import { navigateTo, internalFunctions as uriHelperInternalFunctions } from './Services/UriHelper'; import { internalFunctions as httpInternalFunctions } from './Services/Http'; import { attachRootComponentToElement, renderBatch } from './Rendering/Renderer'; +import { Pointer } from './Platform/Platform'; +import { SharedMemoryRenderBatch } from './Rendering/RenderBatch/SharedMemoryRenderBatch'; if (typeof window !== 'undefined') { // When the library is loaded in a browser via a