Texture is black

Hi, there! I will put more code because it explains better than I would


#include "Texture.h"
#define STB_IMAGE_IMPLEMENTATION
#include "..\stb_image.h"
#include <iostream>


Texture::Texture(std::string filePath)
{
	unsigned char* data = stbi_load(filePath.c_str(), &width, &height, 0, 4);


	if (data == NULL)
		std::cout << "no file: " <<  filePath;

	glGenTextures(1, &tex);
	glBindTexture(GL_TEXTURE_2D, tex);


	glTextureParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
	glTextureParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);

	glTextureParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
	glTextureParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

	//glGenerateMipmap(GL_TEXTURE_2D);
	glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);

	glBindTexture(GL_TEXTURE_2D, 0);

	stbi_image_free(data);
}

Texture::~Texture(){}

void Texture::bind()
{
	glBindTexture(GL_TEXTURE_2D, tex);
}

void Texture::unbind()
{
	glBindTexture(GL_TEXTURE_2D, 0);
}



#pragma once
#include <string>
#include <GL/glew.h>

class Texture
{
public:
	Texture(std::string filePath);
	~Texture();
	void bind();
	void unbind();
private:
	GLuint tex;
	int width, height;
};



#include "Shape.h"
#include <stddef.h>
#include <iostream>


Shape::Shape(const std::vector<DBVertex>& data_) : 
	_indices(data_.size())
{
	glGenBuffers(1, &_vao);
	glBindBuffer(GL_ARRAY_BUFFER, _vao);

	glBufferData(GL_ARRAY_BUFFER, data_.size() * sizeof(data_[0]), data_.data(), GL_STATIC_DRAW);

	glEnableVertexAttribArray(0);
	glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(DBVertex), (void*)offsetof(DBVertex, _Position));

	glEnableVertexAttribArray(1);
	glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(DBVertex), (void*)offsetof(DBVertex, _TexCoords));

	glBindBuffer(GL_ARRAY_BUFFER, 0);
}

void Shape::Draw()
{
	glBindBuffer(GL_ARRAY_BUFFER, _vao);

	glDrawArrays(GL_TRIANGLES, 0, _indices*3);

	glBindBuffer(GL_ARRAY_BUFFER, 0);
}

Shape::~Shape() {}


#version 330

in vec2 outTexCoord;
uniform sampler2D m_Texture;

out vec4 color;

void main()
{
	color = texture2D(m_Texture, outTexCoord);
}


#version 330

layout(location = 0) in vec3 vertPos;
layout(location = 1) in vec2 texCoord;

out vec2 outTexCoord;

void main()
{
	outTexCoord = texCoord;
	gl_Position = vec4(vertPos, 1.0);
}


int main(int argc, char* argv[])
{
	Display test;

	Shader shader("./src/Shaders/default");
	Texture t("./src/img.jpg");
	
	std::vector<DBVertex> test1 = 
	{
		{{-0.5f, -0.5f, 0 } ,{ 0, 0 }},
		{{-0.5f, 0.5f, 0 } ,{ 0, 1 }},
		{{ 0.5f, 0.5f, 0  } ,{ 1, 1 }},

		{ { 0.5f, 0.5f, 0 } ,{ 1, 1 }},
		{{ 0.5f, -0.5f,0}  ,{ 1, 0 }},
		{ { -0.5f, -0.5f, 0 } ,{ 0, 0 }},
	};
	//std::cout << test1.size();

	Shape shape(test1);

	while (test.GetRunning())
	{
		test.Update();
		shader.bind();
		
		t.bind();
		shape.Draw();
		t.unbind();
	}

	//std::cin.get();

	return 0;
}

The above code just renders black sqaure

Shaders work fine, changed texture2D to some random vector and it worked just fine. In my opinion texture2D, can be the cause