예제 #1
0
JNIEXPORT jintArray JNICALL Java_be_beeles_1place_jambiLight_utils_screenCapture_impl_ScreenCapperJNIMock_captureViaJNI(JNIEnv *env, jobject javaObject) {

	// get a new bitmap
	hOldBitmap = (HBITMAP)SelectObject(hMemoryDC, hBitmap);

	BitBlt(hMemoryDC, 0, 0, width, height, hScreenDC, 0, 0, SRCCOPY);
	hBitmap = (HBITMAP)SelectObject(hMemoryDC, hOldBitmap);

	GetDIBits(hScreenDC, hBitmap, 0, height, ScreenData, (BITMAPINFO*)&bmi, DIB_RGB_COLORS);

	jintArray pixelValues = env->NewIntArray(pixels);
	jint *narr = env->GetIntArrayElements(pixelValues, NULL);

	int count = 0;
	for(int i = height-1 ; i >= 0 ; i--) {
		for(int j = 0 ; j < width ; j++) {
			
			narr[count] =  ((PosR(j,i) & 0xff) << 16) + ((PosG(j,i) & 0xff) << 8) + (PosB(j,i) & 0xff);

			count++;
		}
	}

    /*//Rainbows!
    r = (int)(sin(frequency * rbCount + 0) * 127 + 128);
    g = (int)(sin(frequency * rbCount + 2) * 127 + 128);
    b = (int)(sin(frequency * rbCount + 4) * 127 + 128);

	if (rbCount < 32) {
		rbCount++;
	} else {
        rbCount = 0;
	}

	for (int i=0; i < pixels; i++) {
		narr[i] = ((r & 0xff) << 16) + ((g & 0xff) << 8) + (b & 0xff);
	}*/
		
	env->ReleaseIntArrayElements(pixelValues, narr, NULL);
	return pixelValues;
}
예제 #2
0
파일: Sky.cpp 프로젝트: JDHDEV/AlphaEngine
//
// D3DSkyNode11::VOnRestore						- Chapter 16, page 556
//
HRESULT D3DSkyNode11::VOnRestore(Scene *pScene)
{
	HRESULT hr;

	V_RETURN(SceneNode::VOnRestore(pScene));

	m_camera = pScene->GetCamera();

	V_RETURN (m_D3D11VertexShader.OnRestore(pScene));
	V_RETURN (m_D3D11PixelShader.OnRestore(pScene));

	// Create the vertex buffer
	m_numVerts = 24;
	m_sides = 5;

    // Fill the vertex buffer. We are setting the tu and tv texture
    // coordinates, which range from 0.0 to 1.0
    D3D11VertexPosTexture *m_Vertices = AC_NEW D3D11VertexPosTexture[m_numVerts];
	AC_ASSERT(m_Vertices && "Out of memory in D3DSkyNode11::VOnRestore()");
	if (!m_Vertices)
		return E_FAIL;

	float dim = 50.0f;

	// create Pos vectors centered
	Vec3 PosA(-dim/2.0f, dim/2.0f, -dim/2.0f);
	Vec3 PosB(dim/2.0f, dim/2.0f, -dim/2.0f);
	Vec3 PosC(-dim/2.0f, -dim/2.0f, -dim/2.0f);
	Vec3 PosD(dim/2.0f, -dim/2.0f, -dim/2.0f);
	Vec3 PosE(dim/2.0f, dim/2.0f, dim/2.0f);
	Vec3 PosF(-dim/2.0f, dim/2.0f, dim/2.0f);
	Vec3 PosG(dim/2.0f,-dim/2.0f, dim/2.0f);
	Vec3 PosH(-dim/2.0f, -dim/2.0f, dim/2.0f);

	// create Texture vectors
	Vec2 UvA(0.0f, 1.0f);
	Vec2 UvB(1.0f, 1.0f);
	Vec2 UvC(0.0f, 0.0f);
	Vec2 UvD(1.0f, 0.0f);

	// N
	m_Vertices[0] = D3D11VertexPosTexture(PosH, UvA);
	m_Vertices[1] = D3D11VertexPosTexture(PosG, UvB);
	m_Vertices[2] = D3D11VertexPosTexture(PosF, UvC);
	m_Vertices[3] = D3D11VertexPosTexture(PosE, UvD);
	// E
	m_Vertices[4] = D3D11VertexPosTexture(PosE, UvC);
	m_Vertices[5] = D3D11VertexPosTexture(PosG, UvA);
	m_Vertices[6] = D3D11VertexPosTexture(PosB, UvD);
	m_Vertices[7] = D3D11VertexPosTexture(PosD, UvB);
	// S
	m_Vertices[8] = D3D11VertexPosTexture(PosA, UvD);
	m_Vertices[9] = D3D11VertexPosTexture(PosB, UvC);
	m_Vertices[10] = D3D11VertexPosTexture(PosC, UvB);
	m_Vertices[11] = D3D11VertexPosTexture(PosD, UvA);
	// W
	m_Vertices[12] = D3D11VertexPosTexture(PosH, UvB);
	m_Vertices[13] = D3D11VertexPosTexture(PosF, UvD);
	m_Vertices[14] = D3D11VertexPosTexture(PosC, UvA);
	m_Vertices[15] = D3D11VertexPosTexture(PosA, UvC);
	// U
	m_Vertices[16] = D3D11VertexPosTexture(PosC, UvA);
	m_Vertices[17] = D3D11VertexPosTexture(PosD, UvB);
	m_Vertices[18] = D3D11VertexPosTexture(PosH, UvC);
	m_Vertices[19] = D3D11VertexPosTexture(PosG, UvD);
	// D
	m_Vertices[20] = D3D11VertexPosTexture(PosF, UvA);
	m_Vertices[21] = D3D11VertexPosTexture(PosE, UvB);
	m_Vertices[22] = D3D11VertexPosTexture(PosA, UvC);
	m_Vertices[23] = D3D11VertexPosTexture(PosB, UvD);

	WORD *m_Indices = AC_NEW WORD[m_sides * 6];

	m_Indices[0] = 2;
	m_Indices[1] = 1;
	m_Indices[2] = 0;
	m_Indices[3] = 2;
	m_Indices[4] = 3;
	m_Indices[5] = 1;

	m_Indices[6] = 6;
	m_Indices[7] = 5;
	m_Indices[8] = 4;
	m_Indices[9] = 6;
	m_Indices[10] = 7;
	m_Indices[11] = 5;

	m_Indices[12] = 10;
	m_Indices[13] = 9;
	m_Indices[14] = 8;
	m_Indices[15] = 10;
	m_Indices[16] = 11;
	m_Indices[17] = 9;

	m_Indices[18] = 14;
	m_Indices[19] = 13;
	m_Indices[20] = 12;
	m_Indices[21] = 14;
	m_Indices[22] = 15;
	m_Indices[23] = 13;

	m_Indices[24] = 22;
	m_Indices[25] = 21;
	m_Indices[26] = 20;
	m_Indices[27] = 22;
	m_Indices[28] = 23;
	m_Indices[29] = 21;

	//m_Indices[30] = 18;
	//m_Indices[31] = 17;
	//m_Indices[32] = 16;
	//m_Indices[33] = 18;
	//m_Indices[34] = 19;
	//m_Indices[35] = 17;

	V_RETURN (m_D3D11VertexBuffer.OnRestore(m_Vertices, m_numVerts, m_Indices, m_sides * 2));

	SAFE_DELETE_ARRAY(m_Vertices);
	SAFE_DELETE_ARRAY(m_Indices);

	return S_OK;
}