Edit

kc3-lang/angle/src/libANGLE/renderer/vulkan/MemoryObjectVk.h

Branch :

  • Show log

    Commit

  • Author : Michael Spang
    Date : 2019-04-09 18:45:23
    Hash : f02a767d
    Message : Vulkan: Implement glTexStorageMem2DEXT This implements support for creating textures that alias vulkan images allocated inside external memory. Bug: angleproject:3289 Change-Id: Iad071f353a217793102ae737647c7cd572f7b0ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1552029 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>

  • src/libANGLE/renderer/vulkan/MemoryObjectVk.h
  • // Copyright 2019 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    // MemoryObjectVk.h: Defines the class interface for MemoryObjectVk,
    // implementing MemoryObjectImpl.
    
    #ifndef LIBANGLE_RENDERER_VULKAN_MEMORYOBJECTVK_H_
    #define LIBANGLE_RENDERER_VULKAN_MEMORYOBJECTVK_H_
    
    #include "libANGLE/renderer/MemoryObjectImpl.h"
    #include "libANGLE/renderer/vulkan/vk_helpers.h"
    #include "libANGLE/renderer/vulkan/vk_wrapper.h"
    
    namespace rx
    {
    
    class MemoryObjectVk : public MemoryObjectImpl
    {
      public:
        MemoryObjectVk();
        ~MemoryObjectVk() override;
    
        void onDestroy(const gl::Context *context) override;
    
        angle::Result importFd(gl::Context *context,
                               GLuint64 size,
                               gl::HandleType handleType,
                               GLint fd) override;
    
        angle::Result createImage(const gl::Context *context,
                                  gl::TextureType type,
                                  size_t levels,
                                  GLenum internalFormat,
                                  const gl::Extents &size,
                                  GLuint64 offset,
                                  vk::ImageHelper *image);
    
      private:
        angle::Result importOpaqueFd(gl::Context *context, GLuint64 size, GLint fd);
    
        GLuint64 mSize;
        int mFd;
    };
    
    }  // namespace rx
    
    #endif  // LIBANGLE_RENDERER_VULKAN_MEMORYOBJECTVK_H_