Skip to content

Commit eeb8f36

Browse files
committed
Using new IMG_DeepPixelWriter
1 parent d564b2b commit eeb8f36

File tree

2 files changed

+80
-1
lines changed

2 files changed

+80
-1
lines changed

include/IECoreHoudini/RATDeepImageWriter.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#define IECOREHOUDINI_RATDEEPIMAGEWRITER_H
3737

3838
#include "IMG/IMG_DeepShadow.h"
39+
#include "UT/UT_Version.h"
3940

4041
#include "IECore/DeepImageWriter.h"
4142

@@ -76,6 +77,13 @@ class RATDeepImageWriter : public IECore::DeepImageWriter
7677
void open();
7778

7879
IMG_DeepShadow *m_outputFile;
80+
81+
#if UT_MAJOR_VERSION_INT >= 13
82+
83+
IMG_DeepPixelWriter *m_ratPixel;
84+
85+
#endif
86+
7987
std::string m_outputFileName;
8088
int m_dataSize;
8189
int m_alphaOffset;

src/IECoreHoudini/RATDeepImageWriter.cpp

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,29 @@ IE_CORE_DEFINERUNTIMETYPED( RATDeepImageWriter );
5252
const DeepImageWriter::DeepImageWriterDescription<RATDeepImageWriter> RATDeepImageWriter::g_writerDescription( "rat" );
5353

5454
RATDeepImageWriter::RATDeepImageWriter()
55+
#if UT_MAJOR_VERSION_INT >= 13
56+
57+
: DeepImageWriter( "Writes Houdini RAT deep texture file format." ), m_outputFile( 0 ), m_ratPixel( 0 )
58+
59+
#else
60+
5561
: DeepImageWriter( "Writes Houdini RAT deep texture file format." ), m_outputFile( 0 )
62+
63+
#endif
5664
{
5765
}
5866

5967
RATDeepImageWriter::RATDeepImageWriter( const std::string &fileName )
68+
#if UT_MAJOR_VERSION_INT >= 13
69+
70+
: DeepImageWriter( "Writes Houdini RAT deep texture file format." ), m_outputFile( 0 ), m_ratPixel( 0 )
71+
72+
#else
73+
6074
: DeepImageWriter( "Writes Houdini RAT deep texture file format." ), m_outputFile( 0 )
75+
76+
#endif
77+
6178
{
6279
m_fileNameParameter->setTypedValue( fileName );
6380
}
@@ -68,7 +85,13 @@ RATDeepImageWriter::~RATDeepImageWriter()
6885
{
6986
m_outputFile->close();
7087
}
71-
88+
89+
#if UT_MAJOR_VERSION_INT >= 13
90+
91+
delete m_ratPixel;
92+
93+
#endif
94+
7295
delete m_outputFile;
7396
}
7497

@@ -105,7 +128,20 @@ void RATDeepImageWriter::doWritePixel( int x, int y, const DeepPixel *pixel )
105128

106129
y = m_resolutionParameter->getTypedValue().y - y - 1;
107130

131+
#if UT_MAJOR_VERSION_INT >= 13
132+
133+
if ( !m_ratPixel->open( x, y ) )
134+
{
135+
return;
136+
}
137+
138+
m_ratPixel->writeRawSamples( true );
139+
140+
#else
141+
108142
m_outputFile->pixelStart( x, y );
143+
144+
#endif
109145

110146
unsigned numChannels = pixel->numChannels();
111147
unsigned numSamples = pixel->numSamples();
@@ -130,10 +166,28 @@ void RATDeepImageWriter::doWritePixel( int x, int y, const DeepPixel *pixel )
130166
}
131167
}
132168

169+
#if UT_MAJOR_VERSION_INT >= 13
170+
171+
m_ratPixel->writeOrdered( pixel->getDepth( i ), adjustedData, m_dataSize );
172+
173+
#else
174+
133175
m_outputFile->pixelWriteOrdered( pixel->getDepth( i ), adjustedData, m_dataSize );
176+
177+
#endif
178+
134179
}
135180

181+
#if UT_MAJOR_VERSION_INT >= 13
182+
183+
m_ratPixel->close();
184+
185+
#else
186+
136187
m_outputFile->pixelClose();
188+
189+
#endif
190+
137191
}
138192

139193
void RATDeepImageWriter::open()
@@ -144,6 +198,13 @@ void RATDeepImageWriter::open()
144198
return;
145199
}
146200

201+
#if UT_MAJOR_VERSION_INT >= 13
202+
203+
delete m_ratPixel;
204+
m_ratPixel = 0;
205+
206+
#endif
207+
147208
delete m_outputFile;
148209
m_outputFile = new IMG_DeepShadow;
149210
m_outputFileName = "";
@@ -213,6 +274,8 @@ void RATDeepImageWriter::open()
213274

214275
#if UT_MAJOR_VERSION_INT >= 13
215276

277+
m_ratPixel = new IMG_DeepPixelWriter( *m_outputFile );
278+
216279
UT_SharedPtr<UT_Options> options = m_outputFile->getTextureOptions();
217280

218281
#else
@@ -228,6 +291,14 @@ void RATDeepImageWriter::open()
228291
}
229292
else
230293
{
294+
295+
#if UT_MAJOR_VERSION_INT >= 13
296+
297+
delete m_ratPixel;
298+
m_ratPixel = 0;
299+
300+
#endif
301+
231302
delete m_outputFile;
232303
m_outputFile = 0;
233304
m_outputFileName = "";

0 commit comments

Comments
 (0)