YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
GPUInterface.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-FileCopyrightText: 2007 Giacomo Spigler
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef YARPGPUINTERFACES
8#define YARPGPUINTERFACES
9
10#include <yarp/dev/api.h>
11#include <yarp/sig/Image.h>
12
15namespace yarp::dev {
16class IGPUDevice;
17}
18
25public:
26 virtual ~IGPUDevice() {}
27
32 virtual int width() = 0;
37 virtual int height() = 0;
44 virtual bool resize(int width, int height) = 0;
49 virtual void changebpp(int bytespp) = 0;
54 virtual void changetype(int newtype) = 0;
60 virtual int load(char *name) = 0;
67 virtual void setargument(int prg, char *name, float val) = 0;
68 virtual void setargument(int prg, int val) = 0;
69 virtual void setargument(int prg, float val) = 0;
77 virtual void setargument(int prg, char *name, float *vector, int len) = 0;
84 virtual void execute(int prg, unsigned char *in, unsigned char *out) = 0;
92 virtual void execute(int prg, unsigned char *in, unsigned char *in2, unsigned char *out) = 0;
99 virtual void execute(int prg, yarp::sig::Image *in, yarp::sig::Image *out) = 0;
107 virtual void execute(int prg, yarp::sig::Image *in, yarp::sig::Image *in2, yarp::sig::Image *out) = 0;
108};
109
110#endif
A generic interface to GPU port devices.
virtual void execute(int prg, unsigned char *in, unsigned char *in2, unsigned char *out)=0
Execute a loaded program on 2 given matrices (eg: images).
virtual void setargument(int prg, int val)=0
virtual void execute(int prg, yarp::sig::Image *in, yarp::sig::Image *in2, yarp::sig::Image *out)=0
Execute a loaded program on 2 given matrices (eg: images).
virtual int height()=0
It returns the current workspace's height.
virtual void execute(int prg, unsigned char *in, unsigned char *out)=0
Execute a loaded program on a given matrix (eg: an image).
virtual void changetype(int newtype)=0
It changes the size of each pixel (the type each pixel's element is).
virtual void setargument(int prg, char *name, float *vector, int len)=0
Set a program's argument to 'vector' (1D vector for single values).
virtual bool resize(int width, int height)=0
It changes the dimensions of the current working space (the texture used for communication with the G...
virtual int load(char *name)=0
Load a program for the GPU.
virtual int width()=0
It returns the current workspace's width.
virtual void changebpp(int bytespp)=0
It changes the number of bytes per pixel (data matrix element).
virtual void setargument(int prg, float val)=0
virtual void execute(int prg, yarp::sig::Image *in, yarp::sig::Image *out)=0
Execute a loaded program on a given matrix (eg: an image).
virtual void setargument(int prg, char *name, float val)=0
Set a program's argument to 'val' (float).
Base class for storing images.
Definition Image.h:79
For streams capable of holding different kinds of content, check what they actually have.
Definition jointData.cpp:13
The main, catch-all namespace for YARP.
Definition dirs.h:16
#define YARP_dev_API
Definition api.h:18