ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/OpenCL/OpenCL.pm
(Generate patch)

Comparing OpenCL/OpenCL.pm (file contents):
Revision 1.51 by root, Tue Apr 24 13:45:58 2012 UTC vs.
Revision 1.52 by root, Tue Apr 24 14:24:42 2012 UTC

376 376
377For this to work, the OpenGL library must be loaded, a GLX context must 377For this to work, the OpenGL library must be loaded, a GLX context must
378have been created and be made current, and C<dlsym> must be available and 378have been created and be made current, and C<dlsym> must be available and
379capable of finding the function via C<RTLD_DEFAULT>. 379capable of finding the function via C<RTLD_DEFAULT>.
380 380
381=cut
382
383package OpenCL;
384
385use common::sense;
386
387BEGIN {
388 our $VERSION = '0.96';
389
390 require XSLoader;
391 XSLoader::load (__PACKAGE__, $VERSION);
392
393 @OpenCL::Platform::ISA =
394 @OpenCL::Device::ISA =
395 @OpenCL::Context::ISA =
396 @OpenCL::Queue::ISA =
397 @OpenCL::Memory::ISA =
398 @OpenCL::Sampler::ISA =
399 @OpenCL::Program::ISA =
400 @OpenCL::Kernel::ISA =
401 @OpenCL::Event::ISA = OpenCL::Object::;
402
403 @OpenCL::Buffer::ISA =
404 @OpenCL::Image::ISA = OpenCL::Memory::;
405
406 @OpenCL::BufferObj::ISA = OpenCL::Buffer::;
407
408 @OpenCL::Image2D::ISA =
409 @OpenCL::Image3D::ISA =
410 @OpenCL::Image2DArray::ISA =
411 @OpenCL::Image1D::ISA =
412 @OpenCL::Image1DArray::ISA =
413 @OpenCL::Image1DBuffer::ISA = OpenCL::Image::;
414
415 @OpenCL::UserEvent::ISA = OpenCL::Event::;
416}
417
381=head2 THE OpenCL PACKAGE 418=head2 THE OpenCL PACKAGE
382 419
383=over 4 420=over 4
384 421
385=item $int = OpenCL::errno 422=item $int = OpenCL::errno
414=item OpenCL::wait_for_events $wait_events... 451=item OpenCL::wait_for_events $wait_events...
415 452
416Waits for all events to complete. 453Waits for all events to complete.
417 454
418L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clWaitForEvents.html> 455L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clWaitForEvents.html>
456
457=back
458
459=head2 THE OpenCL::Object CLASS
460
461This is the base class for all objects in the OpenCL module. The only
462method it implements is the C<id> method, which is only useful if you want
463to interface to OpenCL on the C level.
464
465=over 4
466
467=item $iv = $obj->id
468
469OpenCL objects are represented by pointers or integers on the C level. If
470you want to interface to an OpenCL object directly on the C level, then
471you need this value, which is returned by this method. You should use an
472C<IV> type in your code and cast that to the correct type.
473
474=cut
475
476sub OpenCL::Object::id {
477 ${$_[0]}
478}
419 479
420=back 480=back
421 481
422=head2 THE OpenCL::Platform CLASS 482=head2 THE OpenCL::Platform CLASS
423 483
1000 1060
1001Yeah. 1061Yeah.
1002 1062
1003L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferToImage.html>. 1063L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferToImage.html>.
1004 1064
1065=item $ev = $queue->enqueue_fill_buffer ($mem, $pattern, $offset, $size, ...)
1066
1067Fills the given buffer object with repeated applications of C<$pattern>,
1068starting at C<$offset> for C<$size> octets.
1069
1070L<http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clEnqueueFillBuffer.html>
1071
1072=item $ev = $queue->enqueue_fill_image ($img, $r, $g, $b, $a, $x, $y, $z, $width, $height, $depth, ...)
1073
1074Fills the given image area with the given rgba colour components. The
1075components are normally floating point values between C<0> and C<1>,
1076except when the image channel data type is a signe dor unsigned
1077unnormalised format, in which case the range is determined by the format.
1078
1079L<http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clEnqueueFillImage.html>
1080
1005=item $ev = $queue->enqueue_task ($kernel, $wait_events...) 1081=item $ev = $queue->enqueue_task ($kernel, $wait_events...)
1006 1082
1007L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueTask.html> 1083L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueTask.html>
1008 1084
1009=item $ev = $queue->enqueue_nd_range_kernel ($kernel, @$global_work_offset, @$global_work_size, @$local_work_size, $wait_events...) 1085=item $ev = $queue->enqueue_nd_range_kernel ($kernel, @$global_work_offset, @$global_work_size, @$local_work_size, $wait_events...)
1535 1611
1536=back 1612=back
1537 1613
1538=cut 1614=cut
1539 1615
1540package OpenCL;
1541
1542use common::sense;
1543
1544BEGIN {
1545 our $VERSION = '0.96';
1546
1547 require XSLoader;
1548 XSLoader::load (__PACKAGE__, $VERSION);
1549
1550 @OpenCL::Buffer::ISA =
1551 @OpenCL::Image::ISA = OpenCL::Memory::;
1552
1553 @OpenCL::BufferObj::ISA = OpenCL::Buffer::;
1554
1555 @OpenCL::Image2D::ISA =
1556 @OpenCL::Image3D::ISA =
1557 @OpenCL::Image2DArray::ISA =
1558 @OpenCL::Image1D::ISA =
1559 @OpenCL::Image1DArray::ISA =
1560 @OpenCL::Image1DBuffer::ISA = OpenCL::Image::;
1561
1562 @OpenCL::UserEvent::ISA = OpenCL::Event::;
1563}
1564
15651; 16161;
1566 1617
1567=head1 AUTHOR 1618=head1 AUTHOR
1568 1619
1569 Marc Lehmann <schmorp@schmorp.de> 1620 Marc Lehmann <schmorp@schmorp.de>

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines