<commit_before>// Copyright (C) 2013 <NAME>
// This file is part of the "Nazara Engine - Renderer module"
// For conditions of distribution and use, see copyright notice in Config.hpp

#pragma once

#ifndef NAZARA_RENDERTARGET_HPP
#define NAZARA_RENDERTARGET_HPP

#include <Nazara/Prerequesites.hpp>
#include <Nazara/Renderer/Config.hpp>
#include <Nazara/Renderer/RenderTargetParameters.hpp>
#include <unordered_map>

class NzRenderer;

class NAZARA_API NzRenderTarget
{
	friend class NzRenderer;

	public:
		class Listener;

		NzRenderTarget();
		virtual ~NzRenderTarget();

		void AddListener(Listener* listener, void* userdata = nullptr) const;

		virtual unsigned int GetHeight() const = 0;
		virtual NzRenderTargetParameters GetParameters() const = 0;
		virtual unsigned int GetWidth() const = 0;

		bool IsActive() const;
		virtual bool IsRenderable() const = 0;

		void RemoveListener(Listener* listener) const;

		bool SetActive(bool active);

		// Fonctions OpenGL
		virtual bool HasContext() const = 0;

		class NAZARA_API Listener
		{
			public:
				Listener() = default;
				~Listener();

				virtual bool OnRenderTargetParametersChange(const NzRenderTarget* renderTarget, void* userdata);
				virtual void OnRenderTargetReleased(const NzRenderTarget* renderTarget, void* userdata);
				virtual bool OnRenderTargetSizeChange(const NzRenderTarget* renderTarget, void* userdata);
		};

	protected:
		virtual bool Activate() const = 0;
		virtual void Desactivate() const;

		void NotifyParametersChange();
		void NotifySizeChange();

	private:
		mutable std::unordered_map<Listener*, void*> m_listeners;
		        bool m_listenersLocked;
};

#endif // NAZARA_RENDERTARGET_HPP<commit_msg>Fixed missing file<commit_after>// Copyright (C) 2013 <NAME>
// This file is part of the "Nazara Engine - Renderer module"
// For conditions of distribution and use, see copyright notice in Config.hpp

#pragma once

#ifndef NAZARA_RENDERTARGET_HPP
#define NAZARA_RENDERTARGET_HPP

#include <Nazara/Prerequesites.hpp>
#include <Nazara/Renderer/Config.hpp>
#include <Nazara/Renderer/RenderTargetParameters.hpp>
#include <unordered_map>

class NzRenderer;

class NAZARA_API NzRenderTarget
{
	friend class NzRenderer;

	public:
		class Listener;

		NzRenderTarget();
		virtual ~NzRenderTarget();

		void AddListener(Listener* listener, void* userdata = nullptr) const;

		virtual unsigned int GetHeight() const = 0;
		virtual NzRenderTargetParameters GetParameters() const = 0;
		virtual unsigned int GetWidth() const = 0;

		bool IsActive() const;
		virtual bool IsRenderable() const = 0;

		void RemoveListener(Listener* listener) const;

		bool SetActive(bool active);

		// Fonctions OpenGL
		virtual bool HasContext() const = 0;

		class NAZARA_API Listener
		{
			public:
				Listener() = default;
				~Listener();

				virtual bool OnRenderTargetParametersChange(const NzRenderTarget* renderTarget, void* userdata);
				virtual void OnRenderTargetReleased(const NzRenderTarget* renderTarget, void* userdata);
				virtual bool OnRenderTargetSizeChange(const NzRenderTarget* renderTarget, void* userdata);
		};

	protected:
		virtual bool Activate() const = 0;
		virtual void Desactivate() const;
		virtual void EnsureTargetUpdated() const = 0;

		void NotifyParametersChange();
		void NotifySizeChange();

	private:
		mutable std::unordered_map<Listener*, void*> m_listeners;
		        bool m_listenersLocked;
};

#endif // NAZARA_RENDERTARGET_HPP
{'fraction_non_alphanumeric': 0.0888243831640058, 'fraction_numerical': 0.006095791001451379, 'mean_word_length': 4.9311531841652325, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6258004', 'n_tokens_mistral': 1167, 'n_tokens_neox': 1027, 'n_words': 308}