Fermat
src
renderers
hellopt.h
1
/*
2
* Fermat
3
*
4
* Copyright (c) 2016-2019, NVIDIA CORPORATION. All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions are met:
8
* * Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* * Neither the name of the NVIDIA CORPORATION nor the
14
* names of its contributors may be used to endorse or promote products
15
* derived from this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
* DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY
21
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
*/
28
29
#pragma once
30
31
#include <renderer_interface.h>
32
#include <buffers.h>
33
#include <tiled_sequence.h>
34
35
struct
RenderingContext
;
36
37
40
44
47
struct
HelloPTOptions
48
{
49
uint32 max_path_length;
50
53
HelloPTOptions
() : max_path_length(6) {}
54
57
void
parse
(
const
int
argc,
char
** argv)
58
{
59
for
(
int
i = 0; i < argc; ++i)
60
{
61
if
(strcmp(argv[i],
"-path-length"
) == 0)
62
max_path_length = atoi(argv[++i]);
63
}
64
}
65
};
66
69
struct
HelloPT
:
RendererInterface
70
{
71
void
init(
int
argc,
char
** argv,
RenderingContext
& renderer);
72
73
void
render(
const
uint32 instance,
RenderingContext
& renderer);
74
75
void
destroy
() {
delete
this
; }
76
77
static
RendererInterface
* factory() {
return
new
HelloPT
(); }
78
79
HelloPTOptions
m_options;
80
DomainBuffer<CUDA_BUFFER, uint8>
m_memory_pool;
81
TiledSequence
m_sequence;
82
};
83
HelloPTOptions::HelloPTOptions
HelloPTOptions()
Definition:
hellopt.h:53
HelloPTOptions
Definition:
hellopt.h:47
HelloPTOptions::parse
void parse(const int argc, char **argv)
Definition:
hellopt.h:57
TiledSequence
Definition:
tiled_sequence.h:131
HelloPT::destroy
void destroy()
Definition:
hellopt.h:75
RendererInterface
Definition:
renderer_interface.h:45
RenderingContext
Definition:
renderer.h:52
HelloPT
Definition:
hellopt.h:69
DomainBuffer< CUDA_BUFFER, uint8 >
Generated by
1.8.13