Cycles: Make all #include statements relative to cycles source directory
[blender.git] / intern / cycles / render / tables.h
1 /*
2  * Copyright 2011-2013 Blender Foundation
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 #ifndef __TABLES_H__
18 #define __TABLES_H__
19
20 #include "util/util_list.h"
21
22 CCL_NAMESPACE_BEGIN
23
24 class Device;
25 class DeviceScene;
26 class Scene;
27
28 enum { TABLE_CHUNK_SIZE = 256 };
29 enum { TABLE_OFFSET_INVALID = -1 };
30
31 class LookupTables {
32 public:
33         struct Table {
34                 size_t offset;
35                 size_t size;
36         };
37
38         bool need_update;
39         list<Table> lookup_tables;
40
41         LookupTables();
42         ~LookupTables();
43
44         void device_update(Device *device, DeviceScene *dscene);
45         void device_free(Device *device, DeviceScene *dscene);
46
47         size_t add_table(DeviceScene *dscene, vector<float>& data);
48         void remove_table(size_t *offset);
49 };
50
51 CCL_NAMESPACE_END
52
53 #endif /* __TABLES_H__ */
54