ngscopeclient 0.1-dev+51fbda87c
|
Base class for waveforms such as eye patterns, spectrograms, and waterfalls which are conceptually a 2D bitmap. More...
#include <DensityFunctionWaveform.h>
Public Member Functions | |
DensityFunctionWaveform (size_t width, size_t height) | |
Initialize a new density function waveform of a given size. More... | |
DensityFunctionWaveform (const DensityFunctionWaveform &)=delete | |
DensityFunctionWaveform & | operator= (const DensityFunctionWaveform &)=delete |
virtual void | Rename (const std::string &name="") override |
Assings a human readable name to the waveform for debug purposes. More... | |
float * | GetData () |
Returns a pointer to the CPU-side sample data buffer. | |
AcceleratorBuffer< float > & | GetOutData () |
Returns a reference to the output data buffer object. | |
size_t | GetHeight () |
Returns the height of the bitmap in pixels. | |
size_t | GetWidth () |
Returns the width of the bitmap in pixels. | |
virtual void | clear () override |
Remove all samples from this waveform. More... | |
virtual void | Resize (size_t unused) override |
Reallocates buffers so the waveform contains the specified number of samples. More... | |
virtual void | PrepareForCpuAccess () override |
Indicates that this waveform is going to be used by the CPU in the near future. More... | |
virtual void | PrepareForGpuAccess () override |
Indicates that this waveform is going to be used by the CPU in the near future. More... | |
virtual void | MarkSamplesModifiedFromCpu () override |
Indicates that this waveform's sample data has been modified on the CPU and the GPU-side copy is no longer coherent. More... | |
virtual void | MarkSamplesModifiedFromGpu () override |
Indicates that this waveform's sample data has been modified on the GPU and the CPU-side copy is no longer coherent. More... | |
virtual void | MarkModifiedFromCpu () override |
Indicates that this waveform's sample data and timestamps have been modified on the CPU and the GPU-side copy is no longer coherent. More... | |
virtual void | MarkModifiedFromGpu () override |
Indicates that this waveform's sample data and timestamps have been modified on the GPU and the CPU-side copy is no longer coherent. More... | |
virtual size_t | size () const override |
Returns the number of samples in this waveform. More... | |
![]() | |
WaveformBase () | |
Creates an empty waveform. | |
WaveformBase (const WaveformBase &rhs) | |
Creates a waveform, copying metadata from another. | |
virtual void | Rename (const std::string &name="")=0 |
Assings a human readable name to the waveform for debug purposes. More... | |
virtual void | clear ()=0 |
Remove all samples from this waveform. More... | |
virtual void | Resize (size_t size)=0 |
Reallocates buffers so the waveform contains the specified number of samples. More... | |
virtual size_t | size () const =0 |
Returns the number of samples in this waveform. More... | |
virtual bool | empty () |
Returns true if this waveform contains no samples, false otherwise. | |
virtual std::string | GetText (size_t i) |
Returns the text representation of a given protocol sample. More... | |
virtual std::string | GetColor (size_t) |
Returns the displayed color (in HTML #rrggbb or #rrggbbaa notation) of a given protocol sample. More... | |
virtual uint32_t | GetColorCached (size_t i) |
Returns the packed RGBA32 color of a given protocol sample calculated by CacheColors() More... | |
virtual void | PrepareForCpuAccess ()=0 |
Indicates that this waveform is going to be used by the CPU in the near future. More... | |
virtual void | PrepareForGpuAccess ()=0 |
Indicates that this waveform is going to be used by the CPU in the near future. More... | |
virtual void | MarkSamplesModifiedFromCpu ()=0 |
Indicates that this waveform's sample data has been modified on the CPU and the GPU-side copy is no longer coherent. More... | |
virtual void | MarkSamplesModifiedFromGpu ()=0 |
Indicates that this waveform's sample data has been modified on the GPU and the CPU-side copy is no longer coherent. More... | |
virtual void | MarkModifiedFromCpu ()=0 |
Indicates that this waveform's sample data and timestamps have been modified on the CPU and the GPU-side copy is no longer coherent. More... | |
virtual void | MarkModifiedFromGpu ()=0 |
Indicates that this waveform's sample data and timestamps have been modified on the GPU and the CPU-side copy is no longer coherent. More... | |
virtual void | CacheColors () |
Updates the cache of packed colors to avoid string parsing every frame. | |
virtual void | FreeGpuMemory ()=0 |
Free GPU-side memory if we are short on VRAM or do not anticipate using this waveform for a while. More... | |
virtual bool | HasGpuBuffer ()=0 |
Returns true if we have at least one buffer resident on the GPU. More... | |
Protected Attributes | |
size_t | m_width |
Buffer width, in pixels. | |
size_t | m_height |
Buffer height, in pixels. | |
AcceleratorBuffer< float > | m_outdata |
Pixel buffer. | |
![]() | |
AcceleratorBuffer< uint32_t > | m_protocolColors |
Cache of packed RGBA32 data with colors for each protocol decode event. Empty for non-protocol waveforms. | |
uint64_t | m_cachedColorRevision |
Revision we last cached colors of. | |
Additional Inherited Members | |
![]() | |
enum | WaveformFlags_t { WAVEFORM_CLIPPING = 1 } |
Flags which may apply to m_flags. More... | |
![]() | |
int64_t | m_timescale |
The time scale, in X axis units (usually femtoseconds) per timestep, used by this channel. More... | |
time_t | m_startTimestamp |
Start time of the acquisition, integer part. | |
int64_t | m_startFemtoseconds |
Start time of the acquisition, fractional part (femtoseconds since since the UTC second) | |
int64_t | m_triggerPhase |
Offset, in X axis units (usually femtoseconds), from the trigger to the sampling clock. More... | |
uint8_t | m_flags |
Flags that apply to this waveform. Bitfield containing zero or more WaveformFlags_t values. | |
uint64_t | m_revision |
Revision number. More... | |
Base class for waveforms such as eye patterns, spectrograms, and waterfalls which are conceptually a 2D bitmap.
Internally, the image data is represented as an AcceleratorBuffer<float> storing one float32 sample values per pixel in row major order (samples 0...width-1 of row 0, then samples 0...width-1 of row 1, etc).
DensityFunctionWaveform::DensityFunctionWaveform | ( | size_t | width, |
size_t | height | ||
) |
Initialize a new density function waveform of a given size.
width | Bitmap width, in pixels |
height | Bitmap height, in pixels |
|
inlineoverridevirtual |
Remove all samples from this waveform.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform's sample data and timestamps have been modified on the CPU and the GPU-side copy is no longer coherent.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform's sample data and timestamps have been modified on the GPU and the CPU-side copy is no longer coherent.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform's sample data has been modified on the CPU and the GPU-side copy is no longer coherent.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform's sample data has been modified on the GPU and the CPU-side copy is no longer coherent.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform is going to be used by the CPU in the near future.
This ensures the CPU-side copy of the data is coherent with the most recently modified (CPU or GPU side) copy.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform is going to be used by the CPU in the near future.
This ensures the GPU-side copy of the data is coherent with the most recently modified (CPU or GPU side) copy.
Implements WaveformBase.
|
inlineoverridevirtual |
Assings a human readable name to the waveform for debug purposes.
This value may be printed in internal log messages, by the Vulkan validation layers, displayed in frame debuggers, etc.
Implements WaveformBase.
|
inlineoverridevirtual |
Reallocates buffers so the waveform contains the specified number of samples.
If the waveform shrinks, excess memory is freed. If the waveform grows, new samples are uninitialized.
size | New size of the waveform buffer, in samples |
Implements WaveformBase.
|
inlineoverridevirtual |
Returns the number of samples in this waveform.
Implements WaveformBase.