Init size or resize depth_texture

Property definitions

gamnit $ ShadowContext :: resize
	# Init size or resize `depth_texture`
	fun resize(display: GamnitDisplay, shadow_resolution: Int)
	do
		glBindFramebuffer(gl_FRAMEBUFFER, light_view_framebuffer)
		var gl_error = glGetError
		assert gl_error == gl_NO_ERROR else print_error gl_error

		# Depth texture
		var depth_texture = self.depth_texture
		glActiveTexture gl_TEXTURE0
		glBindTexture(gl_TEXTURE_2D, depth_texture)
		glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_MIN_FILTER, gl_LINEAR)
		glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_MAG_FILTER, gl_NEAREST)
		glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_S, gl_CLAMP_TO_EDGE)
		glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_T, gl_CLAMP_TO_EDGE)
		gl_error = glGetError
		assert gl_error == gl_NO_ERROR else print_error gl_error

		# TODO support hardware shadows with GL ES 3.0 or GL_EXT_shadow_samplers
		#glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_COMPARE_MODE, ...)

		glTexImage2D(gl_TEXTURE_2D, 0, gl_DEPTH_COMPONENT,
		             shadow_resolution, shadow_resolution,
		             0, gl_DEPTH_COMPONENT, gl_UNSIGNED_SHORT, new Pointer.nul)
		gl_error = glGetError
		assert gl_error == gl_NO_ERROR else print_error gl_error

		glFramebufferTexture2D(gl_FRAMEBUFFER, gl_DEPTH_ATTACHMENT, gl_TEXTURE_2D, depth_texture, 0)
		gl_error = glGetError
		assert gl_error == gl_NO_ERROR else print_error gl_error

		# Check if the framebuffer is complete and valid
		assert glCheckFramebufferStatus(gl_FRAMEBUFFER) == gl_FRAMEBUFFER_COMPLETE

		# Take down
		glBindTexture(gl_TEXTURE_2D, 0)
		glBindFramebuffer(gl_FRAMEBUFFER, 0)
		gl_error = glGetError
		assert gl_error == gl_NO_ERROR else print_error gl_error
	end
lib/gamnit/depth/shadow.nit:249,2--288,4