Krita Source Code Documentation
Loading...
Searching...
No Matches
JXLExpTool::JxlOutputProcessor Struct Reference

#include <kis_jpegxl_export_tools.h>

Public Member Functions

JxlEncoderOutputProcessor getOutputProcessor ()
 
 JxlOutputProcessor (QIODevice *io)
 

Static Public Member Functions

static voidgetBuffer (void *opaque, size_t *size)
 
static void releaseBuffer (void *opaque, size_t written_bytes)
 
static void seek (void *opaque, uint64_t position)
 
static void setFinalizedPosition (void *opaque, uint64_t finalized_position)
 

Public Attributes

size_t finalized_position {0}
 
QIODevice * outDevice {nullptr}
 
QByteArray output
 

Detailed Description

Definition at line 83 of file kis_jpegxl_export_tools.h.

Constructor & Destructor Documentation

◆ JxlOutputProcessor()

JXLExpTool::JxlOutputProcessor::JxlOutputProcessor ( QIODevice * io)
inline

Definition at line 84 of file kis_jpegxl_export_tools.h.

85 : outDevice(io)
86 {
87 }

Member Function Documentation

◆ getBuffer()

static void * JXLExpTool::JxlOutputProcessor::getBuffer ( void * opaque,
size_t * size )
inlinestatic

Definition at line 96 of file kis_jpegxl_export_tools.h.

97 {
98 JxlOutputProcessor *self = reinterpret_cast<JxlOutputProcessor *>(opaque);
99 *size = std::min<size_t>(*size, 1u << 16);
100 if (static_cast<size_t>(self->output.size()) < *size) {
101 self->output.resize(*size);
102 }
103 return self->output.data();
104 }
int size(const Forest< T > &forest)
Definition KisForest.h:1232

References output.

◆ getOutputProcessor()

JxlEncoderOutputProcessor JXLExpTool::JxlOutputProcessor::getOutputProcessor ( )
inline

Definition at line 90 of file kis_jpegxl_export_tools.h.

91 {
92 return JxlEncoderOutputProcessor{this, getBuffer, releaseBuffer, seek, setFinalizedPosition};
93 }
static void setFinalizedPosition(void *opaque, uint64_t finalized_position)
static void releaseBuffer(void *opaque, size_t written_bytes)
static void * getBuffer(void *opaque, size_t *size)
static void seek(void *opaque, uint64_t position)

References getBuffer(), releaseBuffer(), seek(), and setFinalizedPosition().

◆ releaseBuffer()

static void JXLExpTool::JxlOutputProcessor::releaseBuffer ( void * opaque,
size_t written_bytes )
inlinestatic

Definition at line 106 of file kis_jpegxl_export_tools.h.

107 {
108 JxlOutputProcessor *self = reinterpret_cast<JxlOutputProcessor *>(opaque);
109 if (self->outDevice->isOpen()) {
110 if (static_cast<size_t>(
111 self->outDevice->write(reinterpret_cast<const char *>(self->output.data()), written_bytes))
112 != written_bytes) {
113 warnFile << "Failed to write" << written_bytes << "bytes to output";
114 }
115 } else {
116 warnFile << "ReleaseBuffer failed, file not open";
117 }
118 self->output.clear();
119 }
#define warnFile
Definition kis_debug.h:95

References outDevice, output, and warnFile.

◆ seek()

static void JXLExpTool::JxlOutputProcessor::seek ( void * opaque,
uint64_t position )
inlinestatic

Definition at line 121 of file kis_jpegxl_export_tools.h.

122 {
123 JxlOutputProcessor *self = reinterpret_cast<JxlOutputProcessor *>(opaque);
124 if (self->outDevice->isOpen()) {
125 self->outDevice->seek(position);
126 } else {
127 warnFile << "Seek failed, file not open";
128 }
129 }

References outDevice, and warnFile.

◆ setFinalizedPosition()

static void JXLExpTool::JxlOutputProcessor::setFinalizedPosition ( void * opaque,
uint64_t finalized_position )
inlinestatic

Definition at line 131 of file kis_jpegxl_export_tools.h.

132 {
133 JxlOutputProcessor *self = reinterpret_cast<JxlOutputProcessor *>(opaque);
134 self->finalized_position = finalized_position;
135 }

References finalized_position.

Member Data Documentation

◆ finalized_position

size_t JXLExpTool::JxlOutputProcessor::finalized_position {0}

Definition at line 139 of file kis_jpegxl_export_tools.h.

139{0};

◆ outDevice

QIODevice* JXLExpTool::JxlOutputProcessor::outDevice {nullptr}

Definition at line 137 of file kis_jpegxl_export_tools.h.

137{nullptr};

◆ output

QByteArray JXLExpTool::JxlOutputProcessor::output

Definition at line 138 of file kis_jpegxl_export_tools.h.


The documentation for this struct was generated from the following file: