File: texture.hpp

package info (click to toggle)
openmw 0.49.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,992 kB
  • sloc: cpp: 372,479; xml: 2,149; sh: 1,403; python: 797; makefile: 26
file content (81 lines) | stat: -rw-r--r-- 1,684 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#ifndef OPENMW_COMPONENTS_NIF_TEXTURE_HPP
#define OPENMW_COMPONENTS_NIF_TEXTURE_HPP

#include "base.hpp"

namespace Nif
{

    struct NiTexture : public NiObjectNET
    {
    };

    struct NiSourceTexture : public NiTexture
    {
        enum class PixelLayout : uint32_t
        {
            Palette = 0,
            HighColor = 1,
            TrueColor = 2,
            Compressed = 3,
            BumpMap = 4,
            Default = 5,
        };

        enum class MipMapFormat : uint32_t
        {
            No = 0,
            Yes = 1,
            Default = 2,
        };

        enum class AlphaFormat : uint32_t
        {
            None = 0,
            Binary = 1,
            Smooth = 2,
            Default = 3,
        };

        struct FormatPrefs
        {
            PixelLayout mPixelLayout;
            MipMapFormat mUseMipMaps;
            AlphaFormat mAlphaFormat;
        };

        char mExternal; // References external file

        std::string mFile;
        NiPixelDataPtr mData;

        FormatPrefs mPrefs;

        char mIsStatic{ 1 };
        bool mDirectRendering{ true };
        bool mPersistRenderData{ false };

        void read(NIFStream* nif) override;
        void post(Reader& nif) override;
    };

    struct BSShaderTextureSet : public Record
    {
        enum class TextureType : uint32_t
        {
            Base = 0,
            Normal = 1,
            Glow = 2,
            Parallax = 3,
            Environment = 4,
            EnvironmentMask = 5,
            Subsurface = 6,
            BackLighting = 7,
        };
        std::vector<std::string> mTextures;

        void read(NIFStream* nif) override;
    };

}
#endif