Krita Source Code Documentation
Loading...
Searching...
No Matches
KisBufferStreamSeparate Class Reference

#include <kis_buffer_stream.h>

+ Inheritance diagram for KisBufferStreamSeparate:

Public Member Functions

 KisBufferStreamSeparate (uint8_t **srcs, uint16_t nb_samples, uint16_t depth, tsize_t *lineSize)
 
void moveToLine (tsize_t lineNumber) override
 
void moveToPos (tsize_t x, tsize_t y) override
 
uint32_t nextValue () override
 
void restart () override
 
tsize_t width () const override
 
tsize_t x () const override
 
tsize_t y () const override
 
 ~KisBufferStreamSeparate () override=default
 
- Public Member Functions inherited from KisBufferStreamBase
 KisBufferStreamBase (uint16_t depth)
 
virtual ~KisBufferStreamBase ()=default
 

Protected Attributes

uint16_t m_current_sample = 0
 
uint16_t m_nb_samples
 
QVector< QSharedPointer< KisBufferStreamBase > > streams
 
- Protected Attributes inherited from KisBufferStreamBase
uint16_t m_depth
 

Detailed Description

Definition at line 100 of file kis_buffer_stream.h.

Constructor & Destructor Documentation

◆ KisBufferStreamSeparate()

KisBufferStreamSeparate::KisBufferStreamSeparate ( uint8_t ** srcs,
uint16_t nb_samples,
uint16_t depth,
tsize_t * lineSize )

Definition at line 136 of file kis_buffer_stream.cc.

137 : KisBufferStreamBase(depth)
138 , m_nb_samples(nb_samples)
139{
140 if (depth < 16) {
141 for (uint16_t i = 0; i < m_nb_samples; i++) {
142 streams.push_back(
144 srcs[i],
145 depth,
146 lineSize[i]));
147 }
148 } else if (depth < 32) {
149 for (uint16_t i = 0; i < m_nb_samples; i++) {
150 streams.push_back(
152 srcs[i],
153 depth,
154 lineSize[i]));
155 }
156 } else {
157 for (uint16_t i = 0; i < m_nb_samples; i++) {
158 streams.push_back(
160 srcs[i],
161 depth,
162 lineSize[i]));
163 }
164 }
165 restart();
166}
KisBufferStreamBase(uint16_t depth)
QVector< QSharedPointer< KisBufferStreamBase > > streams

References m_nb_samples, restart(), and streams.

◆ ~KisBufferStreamSeparate()

KisBufferStreamSeparate::~KisBufferStreamSeparate ( )
overridedefault

Member Function Documentation

◆ moveToLine()

void KisBufferStreamSeparate::moveToLine ( tsize_t lineNumber)
overridevirtual

Implements KisBufferStreamBase.

Definition at line 184 of file kis_buffer_stream.cc.

185{
186 KIS_ASSERT(lineNumber >= 0);
187 moveToPos(0, lineNumber);
188}
void moveToPos(tsize_t x, tsize_t y) override
#define KIS_ASSERT(cond)
Definition kis_assert.h:33

References KIS_ASSERT, and moveToPos().

◆ moveToPos()

void KisBufferStreamSeparate::moveToPos ( tsize_t x,
tsize_t y )
overridevirtual

Implements KisBufferStreamBase.

Definition at line 190 of file kis_buffer_stream.cc.

191{
192 for (const auto &stream : streams) {
193 stream->moveToPos(x, y);
194 }
195}
tsize_t y() const override
tsize_t x() const override

References streams, x(), and y().

◆ nextValue()

uint32_t KisBufferStreamSeparate::nextValue ( )
overridevirtual

Implements KisBufferStreamBase.

Definition at line 168 of file kis_buffer_stream.cc.

169{
170 const uint32_t value = streams[m_current_sample]->nextValue();
173 return value;
174}
float value(const T *src, size_t ch)

References m_current_sample, m_nb_samples, streams, and value().

◆ restart()

void KisBufferStreamSeparate::restart ( )
overridevirtual

Implements KisBufferStreamBase.

Definition at line 176 of file kis_buffer_stream.cc.

177{
179 for (const auto &stream : streams) {
180 stream->restart();
181 }
182}

References m_current_sample, and streams.

◆ width()

tsize_t KisBufferStreamSeparate::width ( ) const
overridevirtual

Implements KisBufferStreamBase.

Definition at line 207 of file kis_buffer_stream.cc.

208{
209 return streams[m_current_sample]->width();
210}

References m_current_sample, and streams.

◆ x()

tsize_t KisBufferStreamSeparate::x ( ) const
overridevirtual

Implements KisBufferStreamBase.

Definition at line 197 of file kis_buffer_stream.cc.

198{
199 return streams[m_current_sample]->x();
200}

References m_current_sample, and streams.

◆ y()

tsize_t KisBufferStreamSeparate::y ( ) const
overridevirtual

Implements KisBufferStreamBase.

Definition at line 202 of file kis_buffer_stream.cc.

203{
204 return streams[m_current_sample]->y();
205}

References m_current_sample, and streams.

Member Data Documentation

◆ m_current_sample

uint16_t KisBufferStreamSeparate::m_current_sample = 0
protected

Definition at line 125 of file kis_buffer_stream.h.

◆ m_nb_samples

uint16_t KisBufferStreamSeparate::m_nb_samples
protected

Definition at line 126 of file kis_buffer_stream.h.

◆ streams

QVector<QSharedPointer<KisBufferStreamBase> > KisBufferStreamSeparate::streams
protected

Definition at line 124 of file kis_buffer_stream.h.


The documentation for this class was generated from the following files: