Class: OpenCL::Image

Inherits:
Mem
  • Object
show all
Defined in:
lib/opencl_ruby_ffi/Image.rb,
lib/opencl_ruby_ffi/opencl_ruby_ffi_base_gen.rb

Overview

Maps the cl_mem OpenCL objects of type CL_MEM_OBJECT_IMAGE*

Constant Summary collapse

FORMAT_MISMATCH =

:stopdoc:

-9
FORMAT_NOT_SUPPORTED =
-10
FORMAT =
0x1110
ELEMENT_SIZE =
0x1111
ROW_PITCH =
0x1112
SLICE_PITCH =
0x1113
WIDTH =
0x1114
HEIGHT =
0x1115
DEPTH =
0x1116
ARRAY_SIZE =
0x1117
BUFFER =
0x1118
NUM_MIP_LEVELS =
0x1119
NUM_SAMPLES =
0x111A
ROW_ALIGNMENT_QCOM =
0x40A2
SLICE_ALIGNMENT_QCOM =
0x40A3

Constants inherited from Mem

Mem::ALLOC_HOST_PTR, Mem::ASSOCIATED_MEMOBJECT, Mem::CONTEXT, Mem::COPY_HOST_PTR, Mem::FLAGS, Mem::HOST_NO_ACCESS, Mem::HOST_PTR, Mem::HOST_READ_ONLY, Mem::HOST_UNCACHED_QCOM, Mem::HOST_WRITEBACK_QCOM, Mem::HOST_WRITETHROUGH_QCOM, Mem::HOST_WRITE_COMBINING_QCOM, Mem::HOST_WRITE_ONLY, Mem::IMAGE1D, Mem::IMAGE1D_ARRAY, Mem::IMAGE1D_BUFFER, Mem::IMAGE2D, Mem::IMAGE2D_ARRAY, Mem::IMAGE3D, Mem::ION_HOST_PTR_QCOM, Mem::MAP_COUNT, Mem::OFFSET, Mem::PIPE, Mem::READ_ONLY, Mem::READ_WRITE, Mem::REFERENCE_COUNT, Mem::SIZE, Mem::SVM_ATOMICS, Mem::SVM_FINE_GRAIN_BUFFER, Mem::TYPE, Mem::USES_SVM_POINTER, Mem::USE_HOST_PTR, Mem::WRITE_ONLY

Instance Method Summary collapse

Methods inherited from Mem

#GL_mimap_level, #GL_object_name, #GL_object_type, #GL_texture_target, #associated_memobject, #context, #get_info, #initialize, #platform, release, #set_destructor_callback, #to_s

Constructor Details

This class inherits a constructor from OpenCL::Mem

Instance Method Details

#bufferObject

Returns the associated Buffer if any, nil otherwise



259
260
261
262
263
264
265
# File 'lib/opencl_ruby_ffi/Image.rb', line 259

def buffer
  ptr = FFI::MemoryPointer::new( OpenCL::Buffer )
  error = OpenCL.clGetImageInfo(self,  OpenCL::Image::BUFFER, OpenCL::Buffer.size, ptr, nil)
  OpenCL.error_check(error)
  return nil if ptr.null?
  return OpenCL::Buffer::new(ptr.read_pointer)
end

#descObject

Returns the ImageDesc corresponding to the Image



246
247
248
# File 'lib/opencl_ruby_ffi/Image.rb', line 246

def desc
  return OpenCL::ImageDesc::new( self.type, self.width, self.height, self.depth, self.array_size, self.row_pitch, self.slice_pitch, self.num_mip_levels, self.num_samples, self.buffer )
end

#formatObject

Returns the ImageFormat corresponding to the image



251
252
253
254
255
256
# File 'lib/opencl_ruby_ffi/Image.rb', line 251

def format
  image_format = FFI::MemoryPointer::new( OpenCL::ImageFormat )
  error = OpenCL.clGetImageInfo( self, OpenCL::Image::FORMAT, image_format.size, image_format, nil)
  OpenCL.error_check(error)
  return OpenCL::ImageFormat::from_pointer( image_format )
end

#propObject

:method: num_samples Returns the num_samples of the Image



230
231
232
# File 'lib/opencl_ruby_ffi/Image.rb', line 230

%w( ELEMENT_SIZE ROW_PITCH SLICE_PITCH WIDTH HEIGHT DEPTH ARRAY_SIZE ).each { |prop|
  eval OpenCL.get_info("Image", :size_t, prop)
}