# Making a "flashlight"

**URL:** <https://forum.defold.com/t/making-a-flashlight/286>\
**Category:** Questions\
**Created:** [October 3, 2015, 10:18am UTC](https://forum.defold.com/t/making-a-flashlight/286 "2015-10-03T10:18:58Z")\
**Posts on this page:** 1\
**Showing post:** 9

<div class="post-metadata">

**Author:** ![Linus](https://forum-defold.b-cdn.net/letter_avatar_proxy/v4/letter/l/f4b2a3/32.png) [@Linus](https://forum.defold.com/u/Linus)\
**Post date:** [October 4, 2015, 9:05am UTC](https://forum.defold.com/t/making-a-flashlight/286/9 "2015-10-04T09:05:07Z")

</div>

Ok, so I’ve been fiddling around with the render\_script , placing out clears in different spots, but I have no real idea what I’m doing 😕

Code looks like this:

> function update(self)  
> render.set\_viewport(0, 0, render.get\_window\_width(), render.get\_window\_height())  
> render.clear({[render.BUFFER\_COLOR\_BIT] = vmath.vector4(1, 0, 0, 0)})  
> render.disable\_state(render.STATE\_DEPTH\_TEST)

> ```
> render.enable_render_target(self.light_rt)
> 
> ```

> ```
> render.set_viewport(0, 0, render.get_window_width(), render.get_window_height())
> render.set_view(self.view)
> 
> ```

> ```
> render.set_depth_mask(false)
> render.set_projection(vmath.matrix4_orthographic(0, render.get_width(), 0, render.get_height(), -1, 1))
> render.draw(self.light_pred)
> 
> ```

> ```
> render.disable_render_target(self.light_rt)
> 
> ```

> ```
> render.enable_state(render.STATE_BLEND)
> render.set_blend_func(render.BLEND_SRC_ALPHA, render.BLEND_ONE_MINUS_SRC_ALPHA)
> render.set_view(self.view)
> render.set_projection(vmath.matrix4_orthographic(0, render.get_width(), 0, render.get_height(), -1, 1))
> render.draw(self.tile_pred)
> 
> ```

> ```
> render.enable_state(render.STATE_BLEND)
> render.set_view(vmath.matrix4())
> render.set_projection(vmath.matrix4())
> render.enable_texture(0, self.light_rt, render.BUFFER_COLOR_BIT)
> render.set_blend_func(render.BLEND_ZERO, render.BLEND_SRC_COLOR)
> render.draw(self.quad_pred)
> render.disable_texture(0, self.light_rt)
> 
> ```

Predictably, placing the clear after

> render.draw(self.quad\_pred)

makes everything a solid color, and placing it in after

> ```
> render.draw(self.tile_pred)
> 
> ```

makes only the lights show, but leaves the tracing problem.

---

_[View the full topic](https://forum.defold.com/t/making-a-flashlight/286)._
