blob: fe1aa765a76af6eee4bad8bc118d2ab68c77e050 [file] [log] [blame]
Nicolas Capens17b29fd2016-09-15 09:32:16 -04001// Copyright 2016 The SwiftShader Authors. All Rights Reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#include "Direct3DBaseTexture8.hpp"
16
17#include "Resource.hpp"
18#include "Debug.hpp"
19
20namespace D3D8
21{
22 Direct3DBaseTexture8::Direct3DBaseTexture8(Direct3DDevice8 *device, D3DRESOURCETYPE type, unsigned long levels, unsigned long usage) : Direct3DResource8(device, type, 0), levels(levels), usage(usage)
23 {
24 filterType = D3DTEXF_LINEAR;
25 LOD = 0;
26
27 resource = new sw::Resource(0);
28 }
29
30 Direct3DBaseTexture8::~Direct3DBaseTexture8()
31 {
32 resource->destruct();
33 }
34
35 long Direct3DBaseTexture8::QueryInterface(const IID &iid, void **object)
36 {
37 TRACE("");
38
39 if(iid == IID_IDirect3DBaseTexture8 ||
40 iid == IID_IDirect3DResource8 ||
41 iid == IID_IUnknown)
42 {
43 AddRef();
44 *object = this;
45
46 return S_OK;
47 }
48
49 *object = 0;
50
51 return NOINTERFACE(iid);
52 }
53
54 unsigned long Direct3DBaseTexture8::AddRef()
55 {
56 TRACE("");
57
58 return Direct3DResource8::AddRef();
59 }
60
61 unsigned long Direct3DBaseTexture8::Release()
62 {
63 TRACE("");
64
65 return Direct3DResource8::Release();
66 }
67
68 long Direct3DBaseTexture8::FreePrivateData(const GUID &guid)
69 {
70 TRACE("");
71
72 return Direct3DResource8::FreePrivateData(guid);
73 }
74
75 long Direct3DBaseTexture8::GetPrivateData(const GUID &guid, void *data, unsigned long *size)
76 {
77 TRACE("");
78
79 return Direct3DResource8::GetPrivateData(guid, data, size);
80 }
81
82 void Direct3DBaseTexture8::PreLoad()
83 {
84 TRACE("");
85
86 Direct3DResource8::PreLoad();
87 }
88
89 long Direct3DBaseTexture8::SetPrivateData(const GUID &guid, const void *data, unsigned long size, unsigned long flags)
90 {
91 TRACE("");
92
93 return Direct3DResource8::SetPrivateData(guid, data, size, flags);
94 }
95
96 long Direct3DBaseTexture8::GetDevice(IDirect3DDevice8 **device)
97 {
98 TRACE("");
99
100 return Direct3DResource8::GetDevice(device);
101 }
102
103 unsigned long Direct3DBaseTexture8::SetPriority(unsigned long newPriority)
104 {
105 TRACE("");
106
107 return Direct3DResource8::SetPriority(newPriority);
108 }
109
110 unsigned long Direct3DBaseTexture8::GetPriority()
111 {
112 TRACE("");
113
114 return Direct3DResource8::GetPriority();
115 }
116
117 D3DRESOURCETYPE Direct3DBaseTexture8::GetType()
118 {
119 TRACE("");
120
121 return Direct3DResource8::GetType();
122 }
123
124 unsigned long Direct3DBaseTexture8::GetLevelCount()
125 {
126 TRACE("");
127
128 return levels;
129 }
130
131 unsigned long Direct3DBaseTexture8::GetLOD()
132 {
133 TRACE("");
134
135 return LOD;
136 }
137
Nicolas Capens3b9e1ea2017-06-12 12:43:48 -0400138 unsigned long Direct3DBaseTexture8::SetLOD(unsigned long newLOD)
Nicolas Capens17b29fd2016-09-15 09:32:16 -0400139 {
140 TRACE("");
141
142 LOD = newLOD;
143
144 return 0; // TODO
145 }
146
147 sw::Resource *Direct3DBaseTexture8::getResource() const
148 {
149 return resource;
150 }
151
152 unsigned long Direct3DBaseTexture8::getInternalLevelCount()
153 {
154 return levels;
155 }
156}