1 // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2010 Winch Gate Property Limited
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #include "nel/3d/tile_far_bank.h"
21 using namespace NLMISC
;
23 // Define this to force white far texture (debug)
24 // #define NEL_FORCE_WHITE_FAR_TEXTURE
33 // ***************************************************************************
34 // ***************************************************************************
35 // CTileFarBank::CTileFar.
36 // ***************************************************************************
37 // ***************************************************************************
39 // ***************************************************************************
40 const sint
CTileFarBank::CTileFar::_Version
=0x0;
41 // ***************************************************************************
42 void CTileFarBank::CTileFar::serial(NLMISC::IStream
&f
)
45 (void)f
.serialVersion(_Version
);
48 f
.serialCont (_Pixels
[diffuse
][order0
]);
49 f
.serialCont (_Pixels
[diffuse
][order1
]);
50 f
.serialCont (_Pixels
[diffuse
][order2
]);
51 f
.serialCont (_Pixels
[additive
][order0
]);
52 f
.serialCont (_Pixels
[additive
][order1
]);
53 f
.serialCont (_Pixels
[additive
][order2
]);
55 #ifdef NEL_FORCE_WHITE_FAR_TEXTURE
56 int size
= _Pixels
[diffuse
][order0
].size ();
57 _Pixels
[diffuse
][order0
].resize (0);
58 _Pixels
[diffuse
][order0
].resize (size
, CRGBA::White
);
59 size
= _Pixels
[diffuse
][order1
].size ();
60 _Pixels
[diffuse
][order1
].resize (0);
61 _Pixels
[diffuse
][order1
].resize (size
, CRGBA::White
);
62 size
= _Pixels
[diffuse
][order2
].size ();
63 _Pixels
[diffuse
][order2
].resize (0);
64 _Pixels
[diffuse
][order2
].resize (size
, CRGBA::White
);
65 #endif // NEL_FORCE_WHITE_FAR_TEXTURE
67 // ***************************************************************************
68 void CTileFarBank::CTileFar::setPixels (TFarType type
, TFarOrder order
, NLMISC::CRGBA
* pixels
, uint size
)
73 _Pixels
[diffuse
][order
].resize (size
);
74 _Pixels
[additive
][order
].resize (size
);
76 // Copy only the alpha channel
77 for (uint p
=0; p
<size
; p
++)
79 _Pixels
[diffuse
][order
][p
].A
=pixels
[p
].A
;
80 _Pixels
[additive
][order
][p
].A
=pixels
[p
].A
;
86 _Pixels
[type
][order
].resize (size
);
88 // Copy all the channels
89 memcpy (&_Pixels
[type
][order
][0], pixels
, size
*sizeof(NLMISC::CRGBA
));
94 // ***************************************************************************
95 // ***************************************************************************
97 // ***************************************************************************
98 // ***************************************************************************
100 // ***************************************************************************
101 CTileFarBank::CTileFarBank()
105 // ***************************************************************************
106 const sint
CTileFarBank::_Version
=0x0;
107 // ***************************************************************************
108 void CTileFarBank::serial(NLMISC::IStream
&f
)
110 // Write/Check "FAR_BANK" in header of the stream
111 f
.serialCheck (NELID("_RAF"));
112 f
.serialCheck (NELID("KNAB"));
115 (void)f
.serialVersion(_Version
);
118 f
.serialCont (_TileVector
);