cocos-engine icon indicating copy to clipboard operation
cocos-engine copied to clipboard

Add gfx.device.copyTextureToTexture

Open dumganhar opened this issue 1 year ago • 15 comments

Re: #17268

This PR was originally developed by @zhoujianbo0

Changelog


Continuous Integration

This pull request:

  • [ ] needs automatic test cases check.

    Manual trigger with @cocos-robot run test cases afterward.

  • [ ] does not change any runtime related code or build configuration

    If any reviewer thinks the CI checks are needed, please uncheck this option, then close and reopen the issue.


Compatibility Check

This pull request:

  • [ ] changes public API, and have ensured backward compatibility with deprecated features.
  • [ ] affects platform compatibility, e.g. system version, browser version, platform sdk version, platform toolchain, language version, hardware compatibility etc.
  • [ ] affects file structure of the build package or build configuration which requires user project upgrade.
  • [ ] introduces breaking changes, please list all changes, affected features and the scope of violation.

dumganhar avatar Jul 02 '24 05:07 dumganhar

Interface Check Report

! WARNING this pull request has changed these public interfaces:

@@ -9656,8 +9656,9 @@
              * @param texture The texture to copy to.
              * @param regions The region descriptions.
              */
             abstract copyTexImagesToTexture(texImages: Readonly<TexImageSource[]>, texture: Texture, regions: Readonly<BufferTextureCopy[]>): void;
+            abstract copyTextureToTexture(from: Texture, to: Texture, dx: number, dy: number, fromRegion: Readonly<Rect> | null): any;
             /**
              * @en Whether the device has specific feature.
              * @zh 是否具备特性。
              * @param feature The GFX feature to be queried.
@@ -45104,8 +45105,9 @@
         getBufferBarrier(info: Readonly<gfx.BufferBarrierInfo>): __private._cocos_gfx_base_states_buffer_barrier__BufferBarrier;
         copyBuffersToTexture(buffers: Readonly<ArrayBufferView[]>, texture: gfx.Texture, regions: Readonly<gfx.BufferTextureCopy[]>): void;
         copyTextureToBuffers(texture: Readonly<gfx.Texture>, buffers: ArrayBufferView[], regions: Readonly<gfx.BufferTextureCopy[]>): void;
         copyTexImagesToTexture(texImages: Readonly<TexImageSource[]>, texture: gfx.Texture, regions: Readonly<gfx.BufferTextureCopy[]>): void;
+        copyTextureToTexture(from: gfx.Texture, to: gfx.Texture, dx: number, dy: number, fromRegion: Readonly<gfx.Rect> | null): void;
     }
     export class WebGLDevice extends gfx.Device {
         get gl(): WebGLRenderingContext;
         get extensions(): __private._cocos_gfx_webgl_webgl_define__IWebGLExtensions;
@@ -45142,8 +45144,9 @@
         getBufferBarrier(info: Readonly<gfx.BufferBarrierInfo>): __private._cocos_gfx_base_states_buffer_barrier__BufferBarrier;
         copyBuffersToTexture(buffers: Readonly<ArrayBufferView[]>, texture: gfx.Texture, regions: Readonly<gfx.BufferTextureCopy[]>): void;
         copyTextureToBuffers(texture: Readonly<gfx.Texture>, buffers: ArrayBufferView[], regions: Readonly<gfx.BufferTextureCopy[]>): void;
         copyTexImagesToTexture(texImages: Readonly<TexImageSource[]>, texture: gfx.Texture, regions: Readonly<gfx.BufferTextureCopy[]>): void;
+        copyTextureToTexture(from: gfx.Texture, to: gfx.Texture, dx: number, dy: number, fromRegion: Readonly<gfx.Rect> | null): void;
     }
     export class WebGL2Device extends gfx.Device {
         get gl(): WebGL2RenderingContext;
         get extensions(): __private._cocos_gfx_webgl2_webgl2_define__IWebGL2Extensions;
@@ -45180,8 +45183,9 @@
         getBufferBarrier(info: Readonly<gfx.BufferBarrierInfo>): __private._cocos_gfx_base_states_buffer_barrier__BufferBarrier;
         copyBuffersToTexture(buffers: Readonly<ArrayBufferView[]>, texture: gfx.Texture, regions: Readonly<gfx.BufferTextureCopy[]>): void;
         copyTextureToBuffers(texture: Readonly<gfx.Texture>, buffers: ArrayBufferView[], regions: Readonly<gfx.BufferTextureCopy[]>): void;
         copyTexImagesToTexture(texImages: Readonly<TexImageSource[]>, texture: gfx.Texture, regions: Readonly<gfx.BufferTextureCopy[]>): void;
+        copyTextureToTexture(from: gfx.Texture, to: gfx.Texture, dx: number, dy: number, fromRegion: Readonly<gfx.Rect> | null): void;
     }
     export class WebGPUDevice extends gfx.Device {
         createSwapchain(info: Readonly<gfx.SwapchainInfo>): gfx.Swapchain;
         getSampler(info: Readonly<gfx.SamplerInfo>): gfx.Sampler;
@@ -45228,8 +45232,9 @@
         copyBuffersToTexture(buffers: ArrayBufferView[], texture: gfx.Texture, regions: gfx.BufferTextureCopy[]): void;
         copyTexImagesToTexture(texImages: TexImageSource[], texture: gfx.Texture, regions: gfx.BufferTextureCopy[]): void;
         copyFramebufferToBuffer(srcFramebuffer: gfx.Framebuffer, dstBuffer: ArrayBuffer, regions: gfx.BufferTextureCopy[]): void;
         blitFramebuffer(src: gfx.Framebuffer, dst: gfx.Framebuffer, srcRect: gfx.Rect, dstRect: gfx.Rect, filter: gfx.Filter): void;
+        copyTextureToTexture(from: gfx.Texture, to: gfx.Texture, dx: number, dy: number, fromRegion: Readonly<gfx.Rect> | null): void;
     }
     /**
      * @en Intersection2D helper class
      * @zh 辅助类,用于测试形状与形状是否相交
@@ -61128,8 +61133,9 @@
              * @param {Texture2D} image
              * @param {Number} x
              * @param {Number} y
              */
+            drawTextureAt(texture: Texture2D, x: number, y: number): void;
             drawTextureAt(image: ImageAsset, x: number, y: number): void;
         }
         /**
          * @en The instance of [[MorphRendering]] for dedicated control in the mesh renderer.

github-actions[bot] avatar Jul 02 '24 05:07 github-actions[bot]

@cocos-robot run test cases

dumganhar avatar Jul 02 '24 08:07 dumganhar

@cocos-robot run test cases

shaoqiangcai avatar Jul 02 '24 08:07 shaoqiangcai

@cocos-robot run test cases

dumganhar avatar Jul 02 '24 08:07 dumganhar

@cocos-robot run test cases

dumganhar avatar Jul 02 '24 08:07 dumganhar

@cocos-robot run test cases

shaoqiangcai avatar Jul 02 '24 08:07 shaoqiangcai

@cocos-robot run test cases

sushanhong avatar Jul 02 '24 08:07 sushanhong

@cocos-robot run test cases

dumganhar avatar Jul 02 '24 08:07 dumganhar

@cocos-robot run test cases

minggo avatar Jul 02 '24 08:07 minggo

@cocos-robot run test cases

dumganhar avatar Jul 02 '24 09:07 dumganhar

@cocos-robot run test cases

dumganhar avatar Jul 02 '24 09:07 dumganhar

@cocos-robot run test cases

dumganhar avatar Jul 02 '24 09:07 dumganhar

@cocos-robot run test cases

dumganhar avatar Jul 02 '24 09:07 dumganhar

@cocos-robot run test cases

dumganhar avatar Jul 02 '24 10:07 dumganhar

@cocos-robot run test cases

shaoqiangcai avatar Jul 04 '24 03:07 shaoqiangcai