Added enabling and disabling of the octree from the settings buffer

master
mitchellhansen 7 years ago
parent d2bc5e483a
commit 6464fceece

@ -104,7 +104,7 @@ public:
*/ */
CLCaster(); CLCaster();
virtual ~CLCaster(); ~CLCaster();
// Queries hardware, creates the command queue and context, and compiles kernel // Queries hardware, creates the command queue and context, and compiles kernel
bool init(); bool init();
@ -116,7 +116,7 @@ public:
// Light controllers own the copy of the PackedData array. // Light controllers own the copy of the PackedData array.
// We receive a pointer to the array and USE_HOST_POINTER to map the memory to the GPU // We receive a pointer to the array and USE_HOST_POINTER to map the memory to the GPU
bool assign_lights(std::vector<PackedData> *data) ; bool assign_lights(std::vector<PackedData> *data);
// TODO: Double maps?? // TODO: Double maps??
// We take a ptr to the map and create the map, and map_dimensions buffer for the GPU // We take a ptr to the map and create the map, and map_dimensions buffer for the GPU
@ -157,6 +157,7 @@ public:
bool create_settings_buffer(); bool create_settings_buffer();
bool release_settings_buffer(); bool release_settings_buffer();
bool add_to_settings_buffer(std::string setting_name, std::string define_accessor_name, int64_t *value); bool add_to_settings_buffer(std::string setting_name, std::string define_accessor_name, int64_t *value);
bool overwrite_setting(std::string settings_name, int64_t *value);
bool remove_from_settings_buffer(std::string setting_name); bool remove_from_settings_buffer(std::string setting_name);
// ================================== DEBUG ======================================= // ================================== DEBUG =======================================

@ -132,7 +132,7 @@ bool get_oct_vox(
ts.parent_stack[ts.scale] = ts.current_descriptor; ts.parent_stack[ts.scale] = ts.current_descriptor;
// Set our initial dimension and the position at the corner of the oct to keep track of our position // Set our initial dimension and the position at the corner of the oct to keep track of our position
int dimension = OCTDIM; int dimension = setting(OCTDIM);
ts.oct_pos = zeroed_int3; ts.oct_pos = zeroed_int3;
// While we are not at the required resolution // While we are not at the required resolution
@ -331,19 +331,19 @@ __kernel void raycaster(
// If we hit a voxel // If we hit a voxel
if (voxel.x < (*map_dim).x && voxel.y < (*map_dim).x && voxel.z < (*map_dim).x){ if (setting(OCTENABLED) == 1 && voxel.x < (*map_dim).x && voxel.y < (*map_dim).x && voxel.z < (*map_dim).x){
// if (get_oct_vox( if (get_oct_vox(
// voxel, voxel,
// octree_descriptor_buffer, octree_descriptor_buffer,
// octree_attachment_lookup_buffer, octree_attachment_lookup_buffer,
// octree_attachment_buffer, octree_attachment_buffer,
// settings_buffer settings_buffer
// )){ )){
// voxel_data = 5; voxel_data = 5;
// } else { } else {
// voxel_data = 0; voxel_data = 0;
// } }
// } else { } else {
voxel_data = map[voxel.x + (*map_dim).x * (voxel.y + (*map_dim).z * (voxel.z))]; voxel_data = map[voxel.x + (*map_dim).x * (voxel.y + (*map_dim).z * (voxel.z))];
} }

@ -35,6 +35,10 @@ bool Application::init_clcaster() {
raycaster->add_to_settings_buffer("octree_dimensions", "OCTDIM", (int64_t*)&MAP_X); raycaster->add_to_settings_buffer("octree_dimensions", "OCTDIM", (int64_t*)&MAP_X);
// TODO: ALLOW RVALUES FOR SETTINGS BUFFER
int64_t oct_enabled = 0;
raycaster->add_to_settings_buffer("using_octree", "OCTENABLED", &oct_enabled);
map = std::make_shared<Map>(MAP_X); map = std::make_shared<Map>(MAP_X);
// TODO: Implement this // TODO: Implement this

@ -1219,11 +1219,36 @@ bool CLCaster::remove_from_settings_buffer(std::string setting_name) {
} }
bool CLCaster::release_settings_buffer() { bool CLCaster::release_settings_buffer() {
if (!release_buffer("settings_buffer")) if (!release_buffer("settings_buffer"))
return false; return false;
return true; return true;
} }
bool CLCaster::overwrite_setting(std::string settings_name, int64_t *value) {
bool success = true;
if (settings_buffer == nullptr){
Logger::log("Trying to push settings to an uninitialized settings buffer", Logger::LogLevel::ERROR, __LINE__, __FILE__);
success = false;
} else {
if (settings_buffer_indices.count(settings_name)) {
unsigned int postion = settings_buffer_indices[settings_name];
settings_buffer[postion] = *value;
} else {
Logger::log("No setting matching [" + settings_name +"]", Logger::LogLevel::ERROR, __LINE__, __FILE__);
success = false;
}
}
return success;
}
CLCaster::device::device(cl_device_id device_id, cl_platform_id platform_id) { CLCaster::device::device(cl_device_id device_id, cl_platform_id platform_id) {

@ -55,6 +55,7 @@ void Input::handle_held_keys() {
vr::MouseButtonReleased *e = static_cast<vr::MouseButtonReleased*>(event.get()); vr::MouseButtonReleased *e = static_cast<vr::MouseButtonReleased*>(event.get());
held_mouse_buttons.erase(std::remove(held_mouse_buttons.begin(), held_mouse_buttons.end(), e->button), held_mouse_buttons.end()); held_mouse_buttons.erase(std::remove(held_mouse_buttons.begin(), held_mouse_buttons.end(), e->button), held_mouse_buttons.end());
} }
} }
// Generate Held events for each of the held buttons and keys // Generate Held events for each of the held buttons and keys

Loading…
Cancel
Save