OWL
Loading...
Searching...
No Matches
Texture.h
1// ======================================================================== //
2// Copyright 2019-2021 Ingo Wald //
3// //
4// Licensed under the Apache License, Version 2.0 (the "License"); //
5// you may not use this file except in compliance with the License. //
6// You may obtain a copy of the License at //
7// //
8// http://www.apache.org/licenses/LICENSE-2.0 //
9// //
10// Unless required by applicable law or agreed to in writing, software //
11// distributed under the License is distributed on an "AS IS" BASIS, //
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
13// See the License for the specific language governing permissions and //
14// limitations under the License. //
15// ======================================================================== //
16
17#pragma once
18
19#include "RegisteredObject.h"
20
21namespace owl {
22
23 struct Texture : public RegisteredObject
24 {
25 typedef std::shared_ptr<Texture> SP;
26
27 Texture(Context *const context,
28 vec2i size,
29 uint32_t linePitchInBytes,
30 OWLTexelFormat texelFormat,
31 OWLTextureFilterMode filterMode,
32 OWLTextureAddressMode addressMode,
33 OWLTextureColorSpace colorSpace,
34 const void *texels
35 );
36
38 virtual ~Texture();
39
40 std::string toString() const override { return "Texture"; }
41
42 /* return the cuda texture object corresponding to the specified
43 device ID*/
44 cudaTextureObject_t getObject(int deviceID);
45
46
50 void destroy();
51
53 std::vector<cudaTextureObject_t> textureObjects;
54 std::vector<cudaArray_t> textureArrays;
55
56 vec2i size;
57 uint32_t linePitchInBytes;
58 OWLTexelFormat texelFormat;
59 OWLTextureFilterMode filterMode;
60 };
61
62} // ::owl
Definition: Context.h:32
Definition: RegisteredObject.h:30
Definition: Texture.h:24
std::vector< cudaTextureObject_t > textureObjects
Definition: Texture.h:53
void destroy()
Definition: Texture.cpp:160
virtual ~Texture()
Definition: Texture.cpp:152
std::string toString() const override
Definition: Texture.h:40