summaryrefslogtreecommitdiff
path: root/3dc/win95/awPnmLd.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3dc/win95/awPnmLd.cpp')
-rw-r--r--3dc/win95/awPnmLd.cpp239
1 files changed, 0 insertions, 239 deletions
diff --git a/3dc/win95/awPnmLd.cpp b/3dc/win95/awPnmLd.cpp
deleted file mode 100644
index 4e54f2e..0000000
--- a/3dc/win95/awPnmLd.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-#include "advwin32.h"
-#ifndef DB_LEVEL
-#define DB_LEVEL 4
-#endif
-#include "db.h"
-
-#include "awTexLd.hpp"
-
-// PNM loaders
-
-class AwPnmLoader : public AwTl::TypicalTexFileLoader
-{
- protected:
- void _AWTL_VARARG ParseHeader(unsigned nFields,...);
-
- MediaMedium * m_pMedium;
-};
-
-void _AWTL_VARARG AwPnmLoader::ParseHeader(unsigned nFields,...)
-{
- va_list ap;
- va_start(ap,nFields);
-
- m_pMedium->MovePos(+2); // skip past magic
-
- BYTE c = 0;
- while (nFields)
- {
- unsigned * fieldP = va_arg(ap,unsigned *);
- bool comment = false;
- bool done = false;
- do
- {
- MediaRead(m_pMedium, &c);
- switch (c)
- {
- case '\n':
- comment = false;
- break;
- case '#':
- comment = true;
- break;
- default:
- if (!comment && !isspace(c))
- done = true;
- }
- }
- while (!done);
- char bufA[512];
- char * bufP = bufA;
- do
- {
- *bufP++ = c;
- MediaRead(m_pMedium, &c);
- }
- while (!isspace(c));
- *bufP = 0;
- *fieldP = atoi(bufA);
-
- -- nFields;
- }
- // c should now be a newline character
- if ('\n'!=c)
- awTlLastErr = AW_TLE_BADFILEDATA;
-
- va_end(ap);
-}
-
-class AwPpmLoader : public AwPnmLoader
-{
- protected:
- virtual void LoadHeaderInfo(MediaMedium * pMedium);
- virtual AwTl::Colour * GetPalette();
- virtual void LoadNextRow(AwTl::PtrUnion pRow);
-
- unsigned pm_maxval;
-};
-
-void AwPpmLoader::LoadHeaderInfo(MediaMedium * pMedium)
-{
- m_pMedium = pMedium;
-
- db_log4("\tLoading a PPM file");
-
- ParseHeader(3,&m_nWidth,&m_nHeight,&pm_maxval);
-
- db_logf4(("\tPPM_maxval is %u",pm_maxval));
- if (pm_maxval > 255)
- {
- awTlLastErr = AW_TLE_BADFILEFORMAT;
- db_log3("AwCreateTexture(): PPM_maxval too large");
- }
-
- m_nPaletteSize = 0;
-}
-
-AwTl::Colour * AwPpmLoader::GetPalette()
-{
- // never palettized
- return NULL;
-}
-
-void AwPpmLoader::LoadNextRow(AwTl::PtrUnion pRow)
-{
- if (pm_maxval != 255)
- for (unsigned colcount = m_nWidth; colcount; --colcount)
- {
- BYTE byte;
- MediaRead(m_pMedium,&byte);
- pRow.colourP->r = static_cast<BYTE>(static_cast<unsigned>(byte)*255/pm_maxval);
- MediaRead(m_pMedium,&byte);
- pRow.colourP->g = static_cast<BYTE>(static_cast<unsigned>(byte)*255/pm_maxval);
- MediaRead(m_pMedium,&byte);
- pRow.colourP->b = static_cast<BYTE>(static_cast<unsigned>(byte)*255/pm_maxval);
- ++pRow.colourP;
- }
- else
- for (unsigned colcount = m_nWidth; colcount; --colcount)
- {
- MediaRead(m_pMedium,&pRow.colourP->r);
- MediaRead(m_pMedium,&pRow.colourP->g);
- MediaRead(m_pMedium,&pRow.colourP->b);
- ++pRow.colourP;
- }
-}
-
-
-class AwPgmLoader : public AwPnmLoader
-{
- protected:
- virtual void LoadHeaderInfo(MediaMedium * pMedium);
- virtual AwTl::Colour * GetPalette();
- virtual void LoadNextRow(AwTl::PtrUnion pRow);
-
- unsigned pm_maxval;
-};
-
-void AwPgmLoader::LoadHeaderInfo(MediaMedium * pMedium)
-{
- m_pMedium = pMedium;
-
- db_log4("\tLoading a PGM file");
-
- ParseHeader(3,&m_nWidth,&m_nHeight,&pm_maxval);
-
- db_logf4(("\tPGM_maxval is %u",pm_maxval));
- if (pm_maxval > 255)
- {
- awTlLastErr = AW_TLE_BADFILEFORMAT;
- db_log3("AwCreateTexture(): PGM_maxval too large");
- }
-
- m_nPaletteSize = pm_maxval+1;
-}
-
-AwTl::Colour * AwPgmLoader::GetPalette()
-{
- db_assert1(m_nPaletteSize);
- db_assert1(m_pPalette);
-
- unsigned step8 = (256*255)/pm_maxval;
- unsigned val8 = 127;
- AwTl::Colour * pmP = m_pPalette;
- for (unsigned pc = m_nPaletteSize; pc; --pc,++pmP,val8+=step8)
- pmP->r = pmP->g = pmP->b = static_cast<BYTE>(val8/256);
-
- return m_pPalette;
-}
-
-void AwPgmLoader::LoadNextRow(AwTl::PtrUnion pRow)
-{
- m_pMedium->ReadBlock(pRow,m_nWidth);
-}
-
-
-class AwPbmLoader : public AwPnmLoader
-{
- protected:
- virtual void LoadHeaderInfo(MediaMedium * pMedium);
- virtual AwTl::Colour * GetPalette();
- virtual void LoadNextRow(AwTl::PtrUnion pRow);
-};
-
-
-void AwPbmLoader::LoadHeaderInfo(MediaMedium * pMedium)
-{
- m_pMedium = pMedium;
-
- db_log4("\tLoading a PBM file");
-
- ParseHeader(2,&m_nWidth,&m_nHeight);
-
- m_nPaletteSize = 2;
-}
-
-AwTl::Colour * AwPbmLoader::GetPalette()
-{
- db_assert1(m_nPaletteSize);
- db_assert1(m_pPalette);
-
- m_pPalette[0].r = 0;
- m_pPalette[0].g = 0;
- m_pPalette[0].b = 0;
- m_pPalette[1].r = 255;
- m_pPalette[1].g = 255;
- m_pPalette[1].b = 255;
-
- return m_pPalette;
-}
-
-void AwPbmLoader::LoadNextRow(AwTl::PtrUnion pRow)
-{
- unsigned shift = 0;
- BYTE byte = 0;
-
- for (unsigned colcount = m_nWidth; colcount; --colcount)
- {
- if (!shift)
- {
- shift = 8;
- MediaRead(m_pMedium,&byte);
- byte = (BYTE) ~byte;
- }
- --shift;
- *pRow.byteP++ = static_cast<BYTE>(byte>>shift & 1);
- }
-}
-
-#ifdef _MSC_VER
- // VC5.0 tries to compile out code that is in a library
- // and it thinks isn't being used
- #line 228
-#endif
-AWTEXLD_IMPLEMENT_DYNCREATE("P6",AwPpmLoader)
-AWTEXLD_IMPLEMENT_DYNCREATE("P5",AwPgmLoader)
-AWTEXLD_IMPLEMENT_DYNCREATE("P4",AwPbmLoader)
-
-
-